概述
本文汇总了CAS单点登录时常见的问题及解决方案,帮助与指导用户快速找到想要的答案。
javax.net.ssl.SSLHandshakeException
问题描述:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching xxx.xxx.xx found
原因分析:
web.xml中的域名和生成证书时第一个问填写的域名不一致
解决方案:
检查 web.xml 中的配置
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://susie:8443/cas/login</param-value>
<!--这里的server是服务端的IP-->
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://susie:8443/cas/proxyValidate</param-value>
<!--这里的ServerName是服务端的主机名也就是CN-->
</init-param>
确保其中的 susie 跟生成证书时第一个问填写的域名是一致的即可。如下图:
在导入/导出证书的时候,有 keytool 报错
问题描述:
在导入/导出证书的时候,有 keytool 报错,报错信息如下:java.io.IOException: Keystore was tampered with, or password was incorrect解决方案:
密码默认的就是changeit,那么 -storepass 123456 后面的密码修改为 changeit 即可。
报错:500-Internal Server Error
问题描述:
配置完成登录后报错500-Internal Server Error
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
HTTP Status 500 – Internal Server Error
解决方案:
这是因为 Java 并没有成功把我们创建的证书添加到受信库中,重新进行一遍受信操作,或者直接把 JRE 中的受信库文件直接替换成我们的前面创建的 cacerts 文件。首先看 Tomcat 用的是哪里的 JRE:
由上看出,这里 Tomcat 用的 JRE 是%JAVA_HOME%\jdk目录下,把证书挪到%JAVA_HOME%\jdk\jre\lib\security下面即可。
登录后内存管理界面的图表为空
问题描述:
多台服务器做 CAS 及集群。集群正常,单点正常,但是登录后内存管理界面的图表为空。
若移除单点登录配置文件,直接登录,内存管理界面图表则显示正常。
解决方案:
需要配置 CAS 登出。
若不配置 CAS 登出,新用户虽然登录,但是 Session 里的 Token 还是之前的用户,和 Cookie 中现有用户的 Token 冲突。
Token 冲突了,WebSocket 连接在连接验证时被断开,内存管理界面的图表自然为空。
cas集成报错 invalid ticket
问题描述:
cas集成报错invalid ticket
原因分析:
ticket是有有效期的, 超过有效期就会失效
解决方案:
登录成功后跳转到不带有ticket的地址即可
在login后不直接做doFilter, 先判断下请求中的url是否带有ticket信息, 没有的话执行doFilter, 有的话替换出一个不带ticket的url, 然后sendRedirect跳转过去即可。
cas单点登录,https方式访问决策平台后,跳转http导致访问失败
问题描述:
使用cas单点登录插件,登录跳转帆软访问失败,查看请求,发现https方式访问决策平台。
原因分析:
访问时的https协议丢失,在重定向的时候变成了http协议。
解决方案:
一般配置的 nginx https+tomcat http,需要修改 nginx 和 tomcat 的配置,可参考文档 Nginx.conf 配置手册 的第三点。