Lines 424-429
Link Here
|
424 |
*/ |
424 |
*/ |
425 |
private String protocolHeaderHttpsValue = "https"; |
425 |
private String protocolHeaderHttpsValue = "https"; |
426 |
|
426 |
|
|
|
427 |
private String hostHeader = null; |
428 |
|
427 |
private String portHeader = null; |
429 |
private String portHeader = null; |
428 |
|
430 |
|
429 |
/** |
431 |
/** |
Lines 475-480
Link Here
|
475 |
|
477 |
|
476 |
/** |
478 |
/** |
477 |
* Obtain the name of the HTTP header used to override the value returned |
479 |
* Obtain the name of the HTTP header used to override the value returned |
|
|
480 |
* by {@link Request#getServerName()}. |
481 |
* |
482 |
* @return The HTTP header name |
483 |
*/ |
484 |
public String getHostHeader() { |
485 |
return hostHeader; |
486 |
} |
487 |
|
488 |
/** |
489 |
* Set the name of the HTTP header used to override the value returned |
490 |
* by {@link Request#getServerName()}. |
491 |
* |
492 |
* @param hostHeader The HTTP header name |
493 |
*/ |
494 |
public void setHostHeader(String hostHeader) { |
495 |
this.hostHeader = hostHeader; |
496 |
} |
497 |
|
498 |
/** |
499 |
* Obtain the name of the HTTP header used to override the value returned |
478 |
* by {@link Request#getServerPort()} and (optionally depending on {link |
500 |
* by {@link Request#getServerPort()} and (optionally depending on {link |
479 |
* {@link #isChangeLocalPort()} {@link Request#getLocalPort()}. |
501 |
* {@link #isChangeLocalPort()} {@link Request#getLocalPort()}. |
480 |
* |
502 |
* |
Lines 567-572
Link Here
|
567 |
final String originalRemoteHost = request.getRemoteHost(); |
589 |
final String originalRemoteHost = request.getRemoteHost(); |
568 |
final String originalScheme = request.getScheme(); |
590 |
final String originalScheme = request.getScheme(); |
569 |
final boolean originalSecure = request.isSecure(); |
591 |
final boolean originalSecure = request.isSecure(); |
|
|
592 |
final String originalServerName = request.getServerName(); |
570 |
final int originalServerPort = request.getServerPort(); |
593 |
final int originalServerPort = request.getServerPort(); |
571 |
final String originalProxiesHeader = request.getHeader(proxiesHeader); |
594 |
final String originalProxiesHeader = request.getHeader(proxiesHeader); |
572 |
final String originalRemoteIpHeader = request.getHeader(remoteIpHeader); |
595 |
final String originalRemoteIpHeader = request.getHeader(remoteIpHeader); |
Lines 639-644
Link Here
|
639 |
// use request.coyoteRequest.scheme instead of request.setScheme() because request.setScheme() is no-op in Tomcat 6.0 |
662 |
// use request.coyoteRequest.scheme instead of request.setScheme() because request.setScheme() is no-op in Tomcat 6.0 |
640 |
request.getCoyoteRequest().scheme().setString("https"); |
663 |
request.getCoyoteRequest().scheme().setString("https"); |
641 |
|
664 |
|
|
|
665 |
setHost(request); |
642 |
setPorts(request, httpsServerPort); |
666 |
setPorts(request, httpsServerPort); |
643 |
} else { |
667 |
} else { |
644 |
request.setSecure(false); |
668 |
request.setSecure(false); |
Lines 645-650
Link Here
|
645 |
// use request.coyoteRequest.scheme instead of request.setScheme() because request.setScheme() is no-op in Tomcat 6.0 |
669 |
// use request.coyoteRequest.scheme instead of request.setScheme() because request.setScheme() is no-op in Tomcat 6.0 |
646 |
request.getCoyoteRequest().scheme().setString("http"); |
670 |
request.getCoyoteRequest().scheme().setString("http"); |
647 |
|
671 |
|
|
|
672 |
setHost(request); |
648 |
setPorts(request, httpServerPort); |
673 |
setPorts(request, httpServerPort); |
649 |
} |
674 |
} |
650 |
} |
675 |
} |
Lines 685-690
Link Here
|
685 |
// use request.coyoteRequest.scheme instead of request.setScheme() because request.setScheme() is no-op in Tomcat 6.0 |
710 |
// use request.coyoteRequest.scheme instead of request.setScheme() because request.setScheme() is no-op in Tomcat 6.0 |
686 |
request.getCoyoteRequest().scheme().setString(originalScheme); |
711 |
request.getCoyoteRequest().scheme().setString(originalScheme); |
687 |
|
712 |
|
|
|
713 |
request.getCoyoteRequest().serverName().setString(originalServerName); |
688 |
request.setServerPort(originalServerPort); |
714 |
request.setServerPort(originalServerPort); |
689 |
|
715 |
|
690 |
if (originalProxiesHeader == null || originalProxiesHeader.length() == 0) { |
716 |
if (originalProxiesHeader == null || originalProxiesHeader.length() == 0) { |
Lines 701-706
Link Here
|
701 |
} |
727 |
} |
702 |
} |
728 |
} |
703 |
|
729 |
|
|
|
730 |
private void setHost(Request request) { |
731 |
if (hostHeader != null) { |
732 |
String hostHeaderValue = request.getHeader(hostHeader); |
733 |
if (hostHeaderValue != null) { |
734 |
request.getCoyoteRequest().serverName().setString(hostHeaderValue); |
735 |
} |
736 |
} |
737 |
} |
738 |
|
704 |
private void setPorts(Request request, int defaultPort) { |
739 |
private void setPorts(Request request, int defaultPort) { |
705 |
int port = defaultPort; |
740 |
int port = defaultPort; |
706 |
if (portHeader != null) { |
741 |
if (portHeader != null) { |