cas官网文档访问地址:https://wiki.jasig.org/display/CASUM/Home。
我下载的是:3.5.2版本。我配置好的cas界面如下:
界面一:
界面二:
下载链接:
已经搞好的Java客户端及服务器端(MySQL)配置下载:http://pan.baidu.com/s/11MRPr ,两个war包,1个jar包:
cas.war,是配置好的cas服务器端:http://192.168.1.10:8080/casclient 。
casclient.war,是cas客户端示例,所谓cas客户端,就是指使用cas进行单点登录的系统: http://192.168.1.10:8080/cas/login。
cas-client-core-3.2.1-SNAPSHOT.jar:是我在版本3.2.1源码基础上进行修改过的,目的是登录成功后,自动跳转到前一页。
要修改cas.war包中deployerConfigContext.xml里面的数据库连接串及密码查询SQL,jasig日志文件的位置:tomcat所在磁盘:/data/applogs/jasig/目录下,可以通过修改WEB-INFO/class/log4j.xml进行配置。
需要的MySQL数据库privilege建表及数据初始化脚本:create_privilege.sql
使用这个数据库,默认的登录帐户密码:root/root
最新代码Git地址:
cas -server-3.5.2:https://github.com/pumadong/cas-server-3.5.2
cas-client-3.2.1:https://github.com/pumadong/cas-client-3.2.1
Jasig cas服务器端配置:
Jasig cas的功能是认证(单点登录,SSO,Single Sign On),关于系统的授权,由于各个系统可能都不太一样,各个系统自行负责为宜。
Jasig cas的配置非常简单,从官网下载的源码包中,有个module目录,里面有制作好的war包,可以直接使用,当然也可以自行使用maven打包,命令如下:
mvn clean package -Dmaven.test.skip=true -U
把war包改名为cas.war,放到tomcat的webapps目录下,就可以使用了,默认使用的是登陆验证类是测试用的,只要用户名、密码一直就算登陆成功,为了在生产环境使用,我们改为使用MySql数据库验证,步骤如下:
1、简单起见,我们不使用https认证,做如下更改:
WEB-INF\spring-configuration目录下ticketGrantingTicketCookieGenerator.xml和warnCookieGenerator.xml,把p:cookieSecure="true"改为p:cookieSecure="false"
WEB-INF目录下deployerConfigContext.xml中,在如下节点中,增加p:requireSecure="false",
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false" />
2、使用MySql验证
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" p:requireSecure="false" />
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="select password from p_user where username=?" />
<property name="passwordEncoder" ref="passwordEncoderBean"/>
</bean>
</list>