tomcat - Grails 中的 Spring Security 重定向到 HTTP 登录页面

标签 tomcat grails nginx https

我在 Nginx 代理后面的 Tomcat 中运行 Grails 2.5.5 应用程序 (https://github.com/jwilder/nginx-proxy)

nginx 配置了 HTTP 和 HTTPS,但将所有内容重定向到 HTTPS 并发送 Strict-Transport-Security header 。

我有一个问题,即使我通过 HTTPS 调用我的应用程序也是如此

https://example.com/someurl

我从 Grails 应用程序以 HTTP 方式重定向到登录页面:

http://example.com/login/auth

我尝试配置 grails.serverURL 但没有任何区别。

为什么 Grails/Spring Security 不停留在 HTTPS 上或无法识别我已经通过 HTTPS 调用应用程序?

最佳答案

我发现了问题,并且能够通过在 tomcat server.xml 中配置 org.apache.catalina.valves.RemoteIpValve 来解决它:

 <Valve className="org.apache.catalina.valves.RemoteIpValve"
               internalProxies="172\.18\..*"
               remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by"
               protocolHeader="x-forwarded-proto" />

通过这种方式,tomcat 可以正确检测到远程 IP 是什么、使用什么方案以及请求是否安全。

关于tomcat - Grails 中的 Spring Security 重定向到 HTTP 登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214407/

相关文章:

java.lang.LinkageError : ClassCastException:attempting to castjar: javax. ws.rs-api-2.0.1.jar

Grails - 如何实现不使用 id 列的外键关系?

grails - Twitter模式定位

java - nginx 中代理服务器发出重定向时如何更改位置 header

ruby-on-rails - 通过 Web 界面 rails 提供日志

java - 配置为监听端口 8080 的 Tomcat 连接器启动失败

maven - 在 Jenkins 插件中使用外部 dll 库

grails - Grails 2.4.0错误解决依赖项

使用 HTTP/2 作为 LAN 内部通信机制的 SSL 证书问题

Java Maven Tomcat7 :run java memory options for jvm