首页 > 解决方案 > Grails 可运行 jar 中的 Spring Security 重定向到 HTTP

问题描述

我在反向代理后面使用 grails 3 可运行 jar 和 spring Security,处理 https 到 http 流量(和 https 到 http 重定向),将其转发到http://my-host:8080

对于我所有的/login/**电话,grails 正在向 http 发送“302 重定向”

例如,/login/authenticateXHR 使用 header Location: http://my-big-ip/login/ajaxSuccess等重定向。

它没有使用serverURL我在 application.yml 中设置的参数https://my-big-ip

我的 jar 正在使用嵌入式 tomcat,因为我的 build.gradle 中有这个

compile "org.springframework.boot:spring-boot-starter-tomcat"

我得到的关于这个重定向的日志

2019-03-27 15:56:34,415 DEBUG http-nio-8088-exec-5  org.springframework.security.web.savedrequest.HttpSessionRequestCache - Removing DefaultSavedRequest from session if present  
2019-03-27 15:56:34,415 DEBUG http-nio-8088-exec-5  grails.plugin.springsecurity.web.authentication.AjaxAwareAuthenticationSuccessHandler - Redirecting to Ajax Success Url: /login/ajaxSuccess  
2019-03-27 15:56:34,415 DEBUG http-nio-8088-exec-5  grails.plugin.springsecurity.web.GrailsRedirectStrategy - Redirecting to '/login/ajaxSuccess'

标签: springhttpsecuritygrails

解决方案


我相信您需要将其添加到您的应用程序/运行时。(groovy | yml):

server."use-forward-headers" = true

这里有很多文档(关于这个和其他事情)https://docs.spring.io/spring-boot/docs/current/reference/html/howto-embedded-web-servers.html可能会有所帮助如果您对其他详细信息感兴趣。


推荐阅读