上一篇说到如何安装“安装CAS服务器 ”,但是我们现在安装的 cas 服务器 , 在实际项目中这样做肯定是不行的,还需要根据实际概况做扩展和定制,最主要的是扩展认证 (Authentication) 接口和 CAS Server 的界面。我们通常都会使用jdbc连接数据库进行认证,这种情况,用户名和密码被保存在数据库的某个表中。需要进行如下配置
在MySQL数据库下创建一个叫做 test 的数据,然后在该数据库中创建一张user表,然后在这张表中插入数据,创建表和插入记录的sql脚本如下
--------------- 建表
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(11) ,
password varchar(11) ,
PRIMARY KEY (id)
)
--------------- 插入数据
INSERT INTO user ( name, password) VALUES ('aaa', '123');
INSERT INTO user ( name, password) VALUES ('bbb', '123');
用编辑器打开%TOMCAT_HOME%/webapps/cas.war/WEB-INF/deployerConfigContext.xml,找到
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
将上面的 代码注释掉 , 然后带同一级别下添加一个 bean , 代码如下 :
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="SELECT t.password FROM USER t WHERE t.name = ?" />
<property name="dataSource" ref="dataSource" />
</bean>
然后再 beans 标签下添加一个 bean ,用于用户在数据库中的验证
<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/test
</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>wsy55555</value>
</property>
</bean>
然后从 cas-server-3.4.2.1-release.zip\cas-server-3.4.2.1\modules 目录下拷贝 cas-server-support-jdbc-3.4.2.1.jar ,再下载mysql-connector-java-5.1.29-bin.jar,将这两个文件拷贝到%TOMCAT_HOME%/webapps/cas.war/WEB-INF//lib目录下
此时在登录https://localhost:8443/cas 或者 http://localhost:8080/cas/login 然后使用 aaa/123 bbb/123 进入如下界面就表示是一使用自己的数据库信息进行验证了