声明:本文章仅是本人记录作以后备用,不建议作为学习cas的参考文章,毕竟每人的思路不一样,此文章会有好多地方写得过于简单,网路上很多关于cas的文章写得比此文好好多。
首先CAS有服务器端(本人用4.0.0版本)和客户端(3.3.3版本)
服务器端:
服务器端作为统一认证的地方,所以各个系统的用户要统一。
认证的方式有3种,本人采用JDBC的认证方式(AbstractJdbcUsernamePasswordAuthenticationHandler),把配置文件deployerConfigContext.xml里的默认认证方式修改,代码如下:
旧的认证方式:
<bean id="primaryAuthenticationHandler"
class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
<property name="users">
<map>
<entry key="casuser" value="Mellon"/>
</map>
</property>
</bean>
说明:casuser为用户名,Mellon为密码
jdbc认证方式:
<bean id="primaryAuthenticationHandler"
class="cas.filter.MyQueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="SELECT password FROM t_user WHERE username=?"></property>
<property name="passwordEncoder" ref="MD5PasswordEncoder"></property>
</bean>
说明:class的值为重写认证方式,代码下面会给出,dataSource为在此配置文件配置的数据源,passwordEncoder为密码的加密方式。
数据源配置略,passwordEncoder加密方式配置如下:
<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg index="0">
<value>MD5</value>
</constructor-arg>
</bean>
以下配置是返回用户的个人信息,供客户端使用:
<bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
<constructor-arg index="0" ref="dataSource"/>
<constructor-arg index="