这里基于mysql数据库进行用户验证
添加依赖
拷贝cas-server-support-jdbc-x.x.x.jar和mysql驱动包到cas\WEB-INF\lib目录下
创建数据库、表
表结构如下
create table cas_user (
id bigint not null auto_increment,
email varchar(255),
username varchar(255) not null unique,
name varchar(255),
password varchar(255),
primary key (id)
) ENGINE=InnoDB;
配置QueryDatabaseAuthenticationHandler
打开cas\WEB-INF\deployerConfigContext.xml
注释掉:SimpleTestUsernamePasswordAuthenticationHandler这个验证Handler
添加如下配置
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="select password from cas_user where username=?"></property>
<property name="passwordEncoder" ref="md5PasswordEncoder"></property>
</bean>
- QueryDatabaseAuthenticationHandler,是cas-server-support-jdbc提供的查询接口其中一个
- dataSource
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/cas</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value></value></property>
</bean>
- md5PasswordEncoder,CAS内置了MD5
可创建一个类实现org.jasig.cas.authentication.handler.PasswordEncoder,然后在encode方法中加密用户输入的密码然后返回即可
<bean id="md5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg index="0">
<value>MD5</value>
</constructor-arg>
</bean>
浏览器访问cas服务,输入test/test登录成功