准备工作
Tomcat6.0.29
JDK6
CAS Server版本:cas-server-3.5
CAS Client版本:cas-client-3.1.12
将cas-server-support-jdbc-3.5.1.jar 包拷贝到cas项目的lib目录下。
一、配置数据源
在WEB-INF/deployerConfigContext.xml最后位置加入
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value></property>
<property name="url"><value>jdbc:sqlserver://192.168.1.21:1433;DatabaseName=lzfw</value></property>
<property name="username"><value>sa</value></property>
<property name="password"><value>sa123456</value></property>
</bean>
二、在WEB-INF/deployerConfigContext.xml 下将cas默认认证方式去掉
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
三、在<property name="authenticationHandlers"> <list></list><property>中将加入
<bean
class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql"
value="select loginName from sys_user where id = ?" />
<property name="passwordEncoder" ref="MD5PasswordEncoder" />
</bean>
配置解释
select loginName from sys_user where id = ? 查询数据库的sql语句, 通过用户名登录,则通过登录用户名查询登录密码,将密码与登录密码进行匹配登录是否成功.
在cas-server-support-jdbc-3.5.1包中的QueryDatabaseAuthenticationHandler.java类是通过用户名查询数据库密码与登录密码进行匹配的实现类.
ref=“MD5PasswordEncoder” 为加密算法类,如果数据库中的密码加密的,可定义一个加密类。
<bean id="MD5PasswordEncoder" class="org.cxg.util.MyPasswordEncoder" />