Java 无法停止Spring将https重定向到http
我正在一个Java 无法停止Spring将https重定向到http,java,spring,redirect,nginx,spring-security,Java,Spring,Redirect,Nginx,Spring Security,我正在一个springsecurity上开发项目,在我将项目加载到生产服务器之前,一切都很顺利。我在本地计算机上只有http,但在生产服务器上有https 我遇到了一个错误(在登录错误的情况下): 和(如果登录成功): 我问过我的供应商这个问题,但他们说“你的应用程序和nginx之间没有https,所以这是你的应用程序的问题” 我试过了,但这个解决方案看起来很奇怪,并不能解决问题(它需要添加很多配置类,我想这应该不会太难)。实际上,我很困惑这是怎么发生的,为什么重定向到发出请求的模式不是默认行为
springsecurity
上开发项目,在我将项目加载到生产服务器之前,一切都很顺利。我在本地计算机上只有http,但在生产服务器上有https
我遇到了一个错误(在登录错误的情况下):
和(如果登录成功):
我问过我的供应商这个问题,但他们说“你的应用程序和nginx之间没有https,所以这是你的应用程序的问题”
我试过了,但这个解决方案看起来很奇怪,并不能解决问题(它需要添加很多配置类,我想这应该不会太难)。实际上,我很困惑这是怎么发生的,为什么重定向到发出请求的模式不是默认行为
我还尝试将其添加到我的Spring安全配置中:
.and().requiresChannel().anyRequest().requiresSecure()
但这只会在我的本地机器和生产服务器上导致错误\u太多\u重定向
这也无济于事:
http.portMapper()
.http(8080).mapsTo(8443);
我没有使用Spring boot,但也尝试过,没有帮助
成功身份验证配置如下所示:
SavedRequestAwareAuthenticationSuccessHandler successHandler = new
SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setDefaultTargetUrl(env.getProperty("app.authenticationSuccessUrl"));
当Apache Tomcat在HTTPS(反向)代理之后运行时,可能需要一些配置才能使链接和重定向正常工作 打开conf/server.xml,找到
连接器
元素,如果尚未存在,则添加以下属性:
-设置为您的域名proxyName
-如果使用标准https端口,则将其设置为443proxyPort
-如果使用https访问站点,则设置为“https”方案
-将https设置为“true”secure
参考资料:除非您的webapp中硬编码了“http”,否则这可能是由于生产服务器配置不正确造成的。nginx是否作为一个代理,背后有类似Tomcat的东西?@holmis83是的,背后有nginx和Tomcat,所以我应该问我的供应商关于解决这个问题的问题吗?谢谢你的回答,但供应商解决了我的问题,它是在服务器端解决的。
http.portMapper()
.http(8080).mapsTo(8443);
SavedRequestAwareAuthenticationSuccessHandler successHandler = new
SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setDefaultTargetUrl(env.getProperty("app.authenticationSuccessUrl"));