springboot+springSecurity+springSessionDataRedis+CAS搭建集群单点登陆系统
环境描述
windows 7 64bit
spring boot:1.4.0.RELEASE
spring security:4.1.0.RELEASE
CAS:4.1.3
nginx:随便
搭建CAS服务
1.Tomcat配置SSL
1.生成证书
以命令方式进入目录%TOMCAT_HOME%,输入如下命令:
keytool -genkey -alias tomcat_key -keyalg RSA -storepass changeit -keystore server.keystore -validity 3600
注意: -storepass 与 -validity 可以根据需要更改
用户名输入域名,如:test.cas.com,其它全部以Enter跳过,最后确认,此时会在%TOMCAT_HOME%下生成server.keystore文件
2.将证书导入到客户端使用的JDK的证书信任库中
这步对于Tomcat的SSL配置不是必须,但对于CAS SSO是必须的,否则会出现如下错误:
edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidate.
导入过程分2步,第一步是导出证书,第二步是导入到证书信任库,命令如下:
keytool -export -trustcacerts -alias tomcat_key -file server.cer -keystore server.keystore -storepass changeit
keytool -import -trustcacerts -alias tomcat_key -file server.cer -keystore D:/”Program Files”/Java/jdk1.8.0_60/jre/lib/security/cacerts -storepass changeit
其它有用keytool命令(列出信任证书库中所有已有证书,删除库中某个证书):
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts >t.txt
keytool -delete -trustcacerts -alias tomcat_key -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
3.tomcat启用ssl
配置server.xml:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="server.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>
2.CAS服务的配置
1.部署CAS web server:
- 从https://github.com/apereo 下载CAS server对应的版本源码
解压,使用maven命令mvn package对cas进行编译打包,这里可能会出现2个问题:
a.单元测试不通过==》尝试加上-Dmaven.test.skip=true跳过;
b.编译到一半编译不过==》进入cas-server-core,执行命令mvn install -Dmaven.test.skip=true先将core编译为jar包后,再进行。
3.将打包好的cas-server-webapp下的war包复制到tomcat下,运行tomcat先试试吧;
注意:如果觉得麻烦,可以上网搜索cas-server-webapp,使用别人打好的war包
4.将war包放入tomcat的webapps目录下即可
2.从数据库获取用户信息
1.修改%tomcathome%\webapps\cas\WEB-INF中deployerConfigContext.xml:
<constructor-arg>