protected HttpServletRequest wrapRequest()

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
	}