gpt4 book ai didi

Grails spring security 重定向到错误的端口

转载 作者:行者123 更新时间:2023-12-02 14:29:17 25 4
gpt4 key购买 nike

在我的 Grails 应用程序 (2.3.11) 中,我的登录页面将 Ajax 请求发送到:

https://myurl/my-app/j_spring_security_check

但是 spring-security 重定向到:

https://myurl:80/my-app/login/ajaxSuccess

这会导致超时错误(因为 URL 上添加了端口 80)。只有当我的客户端通过他们的流量管理器(Big-IP)访问应用程序时才会出现此问题;如果他们直接通过服务器 IP 访问应用程序,则它可以正常工作。

我可以在 Grails 中做任何配置来解决这个问题吗?我不确定这个问题是否与应用程序或 Big-IP 有关。

这些是我与 spring-security 插件相关的配置(Config.groovy):

grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/login/authSucccessExtJs'
grails.plugins.springsecurity.successHandler.alwaysUseDefault = true
grails.plugins.springsecurity.failureHandler.defaultFailureUrl = '/login/authFailExtJs?login_error=1'
grails.plugins.springsecurity.password.algorithm = 'MD5'

最佳答案

问题是您的应用程序正在接收 http 流量,因为您正在 BIG-IP 上卸载 ssl,因此它会将 http 链接返回给您的客户端。有一些潜在的解决方案。

  1. 配置 grails 以将所有 URL 设置为 https,即使请求是 http
  2. 通过本地流量策略或 iRule 在 BIG-IP 插入 header X-Forwarded-Proto: https(如果 grails 支持此)(您可以通过插入 header 从 curl 测试它看看是否有帮助)
  3. 通过流配置文件或 iRule 将 https 重写为 BIG-IP 上的 http URL 以响应流量。这对于 AJAX 可能会产生很大的问题,但在其他情况下会起作用,但是,选项 1 或 2 会更有效且维护更少。

关于Grails spring security 重定向到错误的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45871078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com