[置顶] cas单点登录出现的重定向循环问题解决方案
先描述下出现的问题,截图如下:
出现该问题的原因可以通过F12查看Network找到,即http和https两个协议开头的url在不停的跳转,最后就出现了上图所示的重定向循环错误,导致页面崩溃。
解决方案很简单:分为两个步骤:
1、制作证书并通过配置让tomcat支持https协议;
2、cas客户端使用的几个url中把相应的http改为https,以及http的8080改为https的8443
具体操作如下:
1、在命令提示符窗口,进入Tomcat目录,执行以下命令:
keytool -genkey -alias cas -keyalg RSA -keypass 123456 -storepass 123456 -keystore c:/cas.keystore -validity 36500
通过以上步骤生成cas.keystore证书文件
将servlet.xml以下的的注释打开
<!-- Define a SSL HTTP/1.1 Connector on port 8443 --> <Connector protocol="org.apache.coyote.http11.Http11Protocol" port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="c:/cas.keystore" keystorePass="changeit"/>
到这一步访问https://localhost:8443/
一般Tomcat默认的SSL端口号是8443,但是对于SSL标准端口号是443,这样在访问网页的时候,直接使用https而不需要输入端口号就可以访问,如https://localhost/
2、修改cas客户端:找到应用的web.xml中所有http://localhost:8080的字符串,替换成https://localhost:8443即可!