Author: mrdon Date: Mon Mar 28 14:58:18 2005 New Revision: 159328 URL: http://svn.apache.org/viewcvs?view=rev&rev=159328 Log: Adding better support for load balancers that use different ports than the server by pulling the port number, optionally, from the HTTP header "Head" if available.
PR: 33238 Patch supplied by: javier crespo <[EMAIL PROTECTED]> Modified: struts/taglib/trunk/src/java/org/apache/struts/taglib/html/BaseTag.java Modified: struts/taglib/trunk/src/java/org/apache/struts/taglib/html/BaseTag.java URL: http://svn.apache.org/viewcvs/struts/taglib/trunk/src/java/org/apache/struts/taglib/html/BaseTag.java?view=diff&r1=159327&r2=159328 ============================================================================== --- struts/taglib/trunk/src/java/org/apache/struts/taglib/html/BaseTag.java (original) +++ struts/taglib/trunk/src/java/org/apache/struts/taglib/html/BaseTag.java Mon Mar 28 14:58:18 2005 @@ -19,6 +19,7 @@ package org.apache.struts.taglib.html; import java.io.IOException; +import java.util.StringTokenizer; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; @@ -76,13 +77,28 @@ public int doStartTag() throws JspException { HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); String serverName = (this.server == null) ? request.getServerName() : this.server; - - String baseTag = - renderBaseElement( - request.getScheme(), - serverName, - request.getServerPort(), - request.getRequestURI()); + + int port = request.getServerPort(); + String headerHost = request.getHeader("Host"); + if (headerHost != null) { + StringTokenizer tokenizer = new StringTokenizer(headerHost,":"); + serverName = tokenizer.nextToken(); + if (tokenizer.hasMoreTokens()) { + String portS = tokenizer.nextToken(); + try { + port = Integer.parseInt(portS); + } catch (Exception e){ + port = 80; + } + } else { + port = 80; + } + } + String baseTag = renderBaseElement( + request.getScheme(), + serverName, + port, + request.getRequestURI()); JspWriter out = pageContext.getOut(); try { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]