1.cas4.0server端下载地址
迅雷地址:http://developer.jasig.org/cas/cas-server-4.0.0-release.zip
也可以去最新的地址:
https://www.apereo.org/projects/cas/download-cas或者http://developer.jasig.org/cas/选择你需要的下载
2. 部署cas服务
解压cas-server-4.0.0-release.zip后拷贝出cas-server-4.0.0\modules的cas-server-webapp-4.0.0.war到tomcat的webapp目录,重命名为cas
3.创建证书(下面会用到)
证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;本教程由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,当然现在也有免费。
keytool -genkey -alias tomcatcas -keystore d://castest -keyalg RSA -validity 3666
详细操作:
因为sso.castest.com不存在,估需要修改hosts文件 (C:\Windows\System32\drivers\etc\hosts)增加:127.0.0.1 sso.castest.com
4.导出证书
证书导出:
keytool -export -alias tomcatcas -keystore d://castest -file d://tomcatcas.crt
5.为客户端的JVM导入证书
如果命令中存在空格,命令将报错
keytool -import -keystore D:\software\Java\jdk1.8.0_20\jre\lib\security\cacerts -file D:/tomcatcas.crt -alias tomcatcas
注意:这里需要输入密码,此密码不是前面设定的密码,是DK安装后会默认创建一个密钥库,密码为:changeit
D:\software\Java\jdk1.8.0_20\jre\lib\security\ -- 是jre的目录;至此证书的创建、导出、导入到客户端JVM都已完成,下面开始使用证书到Web服务器中
6. 启用Web服务器(Tomcat)的SSL,也就是HTTPS加密协议
打开tomcat目录的conf/server.xml文件,取消开启84和88行左右的注释代码,并设置keystoreFile、keystorePass修改结果如下:
参数说明:
- keystoreFile:在第一步创建的key存放位置
- keystorePass:创建证书时的密码
tomcat/webapp/cas/WEB-INF/deployerConfigContext.xml1).注释默认的简单登录配置
2).增加数据库连接
3).更换验证Handle(找到id=authenticationManager的bean)
是为了注释掉key-ref="primaryAuthenticationHandler"的部分,然后引入id=dbAuthHandler的bean之后重启tomcat 进行验证.服务端就配置完成
- 传统型 :下载cas-client,地址:http://developer.jasig.org/cas-clients/,然后解压cas-client-3.1.12.zip,在modules或者WEB-INF文件夹中,请根据自己的项目情况选择使用
-
org.jasig.cas.client cas-client-core 3.4.1
2).客户端所有的web.xml配置
CAS Single Sign Out Filter org.jasig.cas.client.session.SingleSignOutFilter CAS Authentication Filter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl https://localhost:8443/cas/login serverName http://localhost:8080 CAS Validation Filter org.jasig.cas.client.validation.Cas10TicketValidationFilter casServerUrlPrefix https://localhost:8443/cas serverName http://localhost:8080 redirectAfterValidation true CAS HttpServletRequest Wrapper Filter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CAS Assertion Thread Local Filter org.jasig.cas.client.util.AssertionThreadLocalFilter CAS Single Sign Out Filter /* CAS Authentication Filter /* CAS Validation Filter /* CAS HttpServletRequest Wrapper Filter /* CAS Assertion Thread Local Filter /* org.jasig.cas.client.session.SingleSignOutHttpSessionListener
org.apache.shiro shiro-cas 1.2.4
- 修改shiroFilter:
/favicon.ico = anon /login.htm = anon /error/ajaxUnauthorized.htm = anon /doRegister.htm = anon /doAjaxLogin.htm = anon /logout.htm = logout /service/*.htm=anon /*.htm= authc /**/*.htm=authc - shiroRealm的配置中添加两个属性,分别为cas服务器的登录地址和cas客户端的入口即会被拦截的地址:
- 在securityManager的配置中加入属性:
- 加入casSubjectFactory Bean的配置