强制 Grails/Weblogic 仅使用 HTTPS 协议进行重定向

2024-02-27

我在项目中使用 Grails (2.2.2),并且我的应用程序发出不需要的 http 重定向而不是 https 重定向。

目前,我们在 Oracle Weblogic 前面有一个 F5 负载均衡器。 F5 正在从 Weblogic 卸载我们的 SSL。 F5仅接受https请求,Weblogic仅接受http请求。

我的 Grails 项目使用 Spring Security 和 Spring Security CAS 插件。

该问题通常发生在成功登录 CAS 时。 Grails 似乎总是发出 HTTP 重定向。

我的 serverURL 指定 HTTPS,就像我的所有 CAS 配置变量一样。喜欢

grails.serverURL = "https://example.com/${appName}"

有没有办法强制 GRAILS/Weblogic 仅发出 https 重定向?

EDIT #1- 更多信息

我尝试这样做但没有运气:

grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugin.springsecurity.secureChannel.definition = [
    '/**': 'REQUIRES_SECURE_CHANNEL'
 ]
grails.plugin.springsecurity.portMapper.httpPort = 80
grails.plugin.springsecurity.portMapper.httpsPort = 443
grails.plugin.springsecurity.secureChannel.secureHeaderName = 'WL-Proxy-SSL'
grails.plugin.springsecurity.secureChannel.secureHeaderValue = 'http'
grails.plugin.springsecurity.secureChannel.insecureHeaderName = 'WL-Proxy-SSL'
grails.plugin.springsecurity.secureChannel.insecureHeaderValue = 'https'

另外,该行为似乎可能与 Spring Security/Spring CAS 插件不尊重协议有关

j_spring_security_check 之后发生的重定向似乎总是返回 http 重定向而不是 https 重定向。 这会产生一个问题,因为我们不允许 F5 服务器上的 http 请求。 IE。

https://www.example.com/grailsapp/
-> 
https://www.casserver.com/cas/login?service=https%3A%2F%2Fwww.example.com%2Fgrailsapp%2Fj_spring_cas_security_check
-> https://www.example.com/grailsapp/j_spring_cas_security_check;jsessionid=f6T8RyDZ83Z2QQQlMQ7fGXvlrs05m9hTjlBkndD6stBh1s20v2ZH!-1677111548?ticket=ST-231-4Dl5PVDe4RRLpAW5CEXb-www.casserver.com
->
http://www.example.com/grailsapp/

CAS 插件配置:

production {
    grails.plugins.springsecurity.cas.loginUri = '/login'
    grails.plugins.springsecurity.cas.serviceUrl = 'https://example.com/grailsapp/j_spring_cas_security_check'
    grails.plugins.springsecurity.cas.serverUrlPrefix = 'https://casserver.com/cas'
    grails.plugins.springsecurity.logout.afterLogoutUrl = 'https://casserver.com/cas/logout?url=https://example.com/grailsapp/'
}

我建议您查看 Spring Security 的通道安全设置。请注意有关 F5s 和 SSL 的部分文档 http://grails-plugins.github.io/grails-spring-security-core/guide/channelSecurity.html.

我怀疑您的配置中缺少以下内容:

grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true

我还怀疑您并没有通过设置强制您的应用程序始终在 SSL 下运行:

grails.plugin.springsecurity.secureChannel.definition = [
   '/**': 'REQUIRES_SECURE_CHANNEL'
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制 Grails/Weblogic 仅使用 HTTPS 协议进行重定向 的相关文章

随机推荐

  • 用于设置 virtualDirectory 凭据的 IIS AppCmd 语法

    我在用着appcmd在 IIS8 中创建一个新的虚拟目录 其语法是 appcmd add vdir app name
  • Sublime build - nodejs - 如何启动和停止节点应用程序

    所以我的节点构建是这样的 cmd node file selector source js path usr local bin 它运行 但问题是一旦运行 它就永远不会停止 您可以使用像这样的重新加载器node dev https gith
  • Service Fabric 群集自定义终结点与应用程序起始和结束端口

    此屏幕截图是在 Azure 门户上创建集群时拍摄的 如下图所示 自定义端点和应用程序有什么区别 起始端口范围 为什么一个称为端点 另一个称为端口 The custom endpoints help says Custom endpoints
  • Bitbucket 在curl 中管道化变量

    我正在使用 bitbucket 管道 并且在一个步骤中我想对我们的 API 调用curl 请求以将部署数据保存在数据库中 但是当我尝试使用 BITBUCKET BRANCH 和 BITBUCKET REPO SLUG 变量调用curl 时
  • 使用 glibc 而不是默认库编译的 C 程序:执行时权限被拒绝

    这是我在 stackoverflow 上的第一个问题 所以我会尽力做好 Context 我想提供一个可以在每个 Linux 发行版上运行的程序 例如 一个将使用 C 11 的程序 在没有 C 11 库的系统上运行 为此 我想复制我的程序使用
  • 使用 MinGW 构建 Boost 1.52

    我正在尝试寻找有关如何构建的权威答案提升1 52 with MinGW 我在互联网上找到了一些指针 可以归结为这样构建它 cd tools build v2 engine build bat mingw copy bin ntx86 bja
  • 使用 GoDaddy 的 spc 文件签署 java 小程序

    我正在尝试使用 godaddy 的 spc 文件签署 java 小程序 这是我正在使用的命令 keytool import keystore codesignstore storepass pass alias alias file fil
  • Windows 10:获得远程访问权限后,以 .\Administrator 身份远程启动 Quick Assist,无需 UAC,或暂时禁用 UAC

    我想要a script在这种情况下使用 无需管理员权限即可获得远程访问 远程启动快速协助 Administrator and not进行 UAC 对话 第 1 步通常通过 Quick Assist 完成 有时通过 Teams 屏幕共享完成
  • 通过脚本在 Microsoft 集群中创建专用 MSMQ 队列

    我们正在迁移到 Windows 2008 R2 Standard 并将使用 Microsoft 集群 主动 被动 配置 我们的应用程序严重依赖于 MSMQ 专用队列 并且我们的安装使用以下 C 代码创建了 100 多个专用队列 Messag
  • Java ReDos 是否容易受到攻击?

    我尝试重新创建正则表达式拒绝服务攻击 https en wikipedia org wiki ReDoS using a 正则表达式和aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 含有大量的a 使用js
  • Angularjs:ngRepeat 和指令

    我正在尝试制作一些可重复使用的倒计时小部件 与静态内容配合得很好 但是当我尝试动态添加它们时 我的指令不理解 ngRepeat 内的变量 Markups div class countdown p days jours hours heur
  • 使用两个嵌套 iframe 时防止打开新选项卡

    大家好 stackoverflow 的朋友们 我在这里遇到了一个问题 我给了一个iframe向其他人提供代码以将其嵌入到他的网站上 这是代码iframe 以上iframe包含以下内容html some html code
  • Service Worker 在浏览器离线时保存表单数据

    我是 Service Workers 的新手 并且已经浏览了各种文档 Google https developers google com web fundamentals getting started primers service w
  • 无法使用JDK1.8.0_92编译JSP文件

    我们有一个在 JBoss 6 1 上运行的旧版 JavaEE 应用程序 当使用 Java 1 8 0 92 运行 JBoss6 时 我们收到以下错误 请帮助我解决此错误或给出一些提示 16 49 32 888 ERROR org apach
  • 在使用 FromEventPattern 订阅之前捕获事件

    我正在使用 Rx 框架编写消息监听器 我面临的问题是 我正在使用的库使用一个消费者 每当消息到达时就会发布事件 我已经设法通过以下方式消费传入的消息Observable FromEventPattern但我对服务器中已有的消息有疑问 目前我
  • XML 模式:用相应的模式替换导入

    我有一个 XML 架构 其中包含多个导入 而这些导入又包含多个导入 我需要生成语义上相等的模式 其中所有导入都是内联的 我想替换这些
  • 使用按位运算符的算术运算符[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有没有办法通过使用执行加法 或算术运
  • 自动最大化图形

    我正在 MATLAB 中创建一些图形并自动将它们保存到文件中 问题是根据定义图像很小 手动解决我的问题的一个好方法是创建一个图像 图形 将其最大化 然后保存到文件中 我错过了自动最大化数字的这一步 有什么建议么 到目前为止我只发现了这个 h
  • 支持带电话功能和不带电话功能的 Android 设备

    我有一个应用程序可以在具有电话功能和不具有电话功能的设备上运行 以下是我的一些疑问 1 我能够支持这两种类型的设备吗 2 对于具有电话功能的设备 我需要启用通话功能 对于没有电话功能的设备 我将禁用通话功能 我不太清楚 和 概念 有没有办法
  • 强制 Grails/Weblogic 仅使用 HTTPS 协议进行重定向

    我在项目中使用 Grails 2 2 2 并且我的应用程序发出不需要的 http 重定向而不是 https 重定向 目前 我们在 Oracle Weblogic 前面有一个 F5 负载均衡器 F5 正在从 Weblogic 卸载我们的 SS