我有一个 CAS 服务器,大部分仍然是默认的,通过端口:8080 在 http 上运行,通过端口:8008 在 https 上运行
生产环境为CAS 3.4.11,tomcat 5,使用的是maven2部署
当有人登录时,我们尝试将 CAS 站点导航到类似 https://mydomain:8008/cas/services/manage.html
的内容以验证他们的登录,它将他们重定向到:
HTTP://mydomain:8008/cas/login
Tomcat 配置为仅在端口 8008 上提供 https,导致不知情的浏览器通过 http 接收加密字节流并将其作为下载提供给用户。
我是 CAS 的新手,我知道配置中的某处是在重定向中使用 HTTPS 而不是 http 的选项,但我还没有找到它。
当您回答时,拜托,我厌倦了 CAS 文档站点和博客,它们将 p:client-use-https="true"作为他们的全部解释。我需要文件、部分/小节、bean 和其他与最佳实践相关的信息。
我还认识到我以前从未使用过的 tomcat 可以配置为在选定端口上拒绝/重定向到 https 的 http 请求。最好我想制定这两种解决方案。
最佳答案
文件 tomcat/webapps/cas/WEB-INF/cas.properties 有一个 server.prefix,如果它由 http://处理,将强制 http 在所有 Location: header 的开头。同样,使用 https 将强制它包含它。
Tomcat 具有连接器端口定义:
<!-- Define an AJP 1.3 Connector on port 8080 -->
<Connector port="8080"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
redirectionPort 实际上意味着如果需要 HTTPS,请发送到这里,我必须更改它以匹配我在 8009 配置的 SSL 端口
关于tomcat - 由于 http/https 冲突,CAS 登录/重定向无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13126780/