in plugin-core/plugin/src/main/groovy/grails/plugin/springsecurity/web/SecurityRequestHolderFilter.groovy [74:112]
protected HttpServletRequest wrapRequest(HttpServletRequest request) {
if (!useHeaderCheckChannelSecurity) {
return request
}
if (request.getHeader(secureHeaderName) == insecureHeaderValue && request.scheme == 'http') {
return new HttpServletRequestWrapper(request) {
boolean isSecure() { true }
String getScheme() { 'https' }
int getServerPort() {
int serverPort = portResolver.getServerPort(request)
Integer httpsPort = portMapper.lookupHttpsPort(serverPort)
if (httpsPort == null) {
log.warn 'No port mapping found for HTTP port {}', serverPort
httpsPort = serverPort
}
httpsPort
}
}
}
if (request.getHeader(insecureHeaderName) == secureHeaderValue && request.scheme == 'https') {
return new HttpServletRequestWrapper(request) {
boolean isSecure() { false }
String getScheme() { 'http' }
int getServerPort() {
int serverPort = portResolver.getServerPort(request)
Integer httpPort = portMapper.lookupHttpPort(serverPort)
if (httpPort == null) {
log.warn 'No port mapping found for HTTPS port {}', serverPort
httpPort = serverPort
}
httpPort
}
}
}
request
}