cas_server配置数据库用户验证方式
(接上文” Yale CAS介绍与简单示例”)
CAS Server采用连接数据库验证用户登陆信息,通过将用户输入的用户名和密码,和数据库中的数据对照,如果数据库中存在,那么通过,如果没有,那么认证失败,用户不能登录。在以前的示例中验证方式为简单的测试方式,应用环境中需维护用户和密码信息。
1 建立数据库与表信息,本例使用oracle。建表语句如下:
create table app_user (username varchar(30), password varchar(45) , primary key (username));
insert into app_user (username,password) values ('test01','psw01');
insert into app_user (username,password) values('test02','psw02');
2 复制所需的类库到web应用下,如下二个jar包。
cas-server-support-jdbc-3.1.1.jar
ojdbc14.jar
3 配置cas/WEB-INF/目录下的deployerConfigContext.xml 文件。
具体如下:
3.1增加数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property>
<property name="url"><value>jdbc:oracle:thin:@localhost:1521:oracle</value></property>
<property name="username"><value>foundation</value></property>
<property name="password"><value>foundation</value></property>
</bean>
3.2 改变认证方式
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
变为数据库认证方式:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from app_user where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
4 启动tomcat,输入http://shazhenzhong:8080/servlets-examples
在转发的CAS登陆页面中,输入用户和密码(test01,psw01或(test02,psw02))。转发成功后就通过SSO单点登陆认证了。