tomcat - 由于 http/https 冲突,CAS 登录/重定向无法正常工作

标签 tomcat maven https cas

我有一个 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/

相关文章:

java - spring - 为 JSESSIONID cookie 配置域

eclipse - Servlet 初始化参数总是显示为空

java - 在Windows的tomcat服务器上托管的Java程序中显示Unicode字符

java - 从依赖项中删除未使用的方法/类

android - Cloudant/CouchDB key /通行证权限不起作用

运行动态 Web 应用程序时 Eclipse 崩溃

java - 通过 IntelliJ 运行配置运行 Spring boot

java - 为什么我的 Bean 在 Junit 测试中不符合 Autowire Candidate 资格?

.htaccess - 在 https ://上时页面 404ing

php - Apache 配置 ssl