cas(sso)服务器

2017-01-05 11:11:17来源:oschina作者:longload人点击


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.1sso.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修改结果如下:


maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystorefile="D:/wsriakey" keystorepass="castest"/>

参数说明:

keystoreFile:在第一步创建的key存放位置
keystorePass:创建证书时的密码
7.简单配置CAS SERVER后进行验证启动tomcat后浏览器输入http://sso.castest.com:8443/cas/ 注意:cas4.0以前主需要用户名和密码相同即可,但是4.0后默认的用户名/密码:casuser/Mellon否则会报“cas Invalid credentials.”提示 成功进入cas登录页面

8. casserver的数据验证配置 需要依赖的jar:c3p0-0.9.1.2.jar,mysql-connector-java-5.1.21.jar,cas-server-support-jdbc-4.0.0.jar拷贝到cas/WEB-INF/lib下 对配置文件修改:
tomcat/webapp/cas/WEB-INF/deployerConfigContext.xml 1).注释默认的简单登录配置
2).增加数据库连接

p:driverClass="com.mysql.jdbc.Driver"
p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"
p:user="root"
p:password="root" />

c:encodingAlgorithm="MD5"
p:characterEncoding="UTF-8" />
p:dataSource-ref="dataSource"
p:sql="select password from xxxx where name=?"
p:passwordEncoder-ref="passwordEncoder"/>
3).更换验证Handle(找到id=authenticationManager的bean)








是为了注释掉key-ref="primaryAuthenticationHandler"的部分,然后引入id=dbAuthHandler的bean之后重启tomcat 进行验证.服务端就配置完成
8.客户端配置 1). 增加cas-client的jar包(
cas-client-core-3.4.1.jar
),有两种方式: 传统型:下载cas-client,地址:http://developer.jasig.org/cas-clients/,然后解压cas-client-3.1.12.zip,在modules或者WEB-INF文件夹中,请根据自己的项目情况选择使用
Maven
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


9客户端与shiro进行整合配置 1).增加需要的jar包
shiro-cas-1.2.4.jar、
cas-client-core-3.4.1.jar(下载参考第8步)

org.apache.shiro
shiro-cas
1.2.4
2)修改shiro的配置(spring-shiro.xml)修改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的配置
参考页面 http://dead-knight.iteye.com/blog/1525671 http://blog.csdn.net/zhuojiajin/article/details/42973251 http://blog.csdn.net/ppt0501/article/details/41728819

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台