本人Phper,在CAS这样的环境里改东西,真的是为难我了,找了好久的坑,终于搞定了数据库的配置
话不多说,直接上流程:
在CAS服务器的路径为:webapps\cas-server-4.0\WEB-INF\deployerConfigContext.xml
编辑此文件之前,需要下载两个jar包
mysql-connector-java-5.1.45-bin 下载地址:
cas-server-support-jdbc-4.0.0 下载地址:
将这两个包放在:webapps\cas-server-4.0\WEB-INF\lib 路径下面
接着,创建数据库与表
CREATE DATABASE cas;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES (1,'admin','222222');
INSERT INTO `user` VALUES (2,'user','222222');
然后到文件deployerConfigContext.xml里进行配置
第一步添加如下bean
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/cas" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
注意一定要写对数据库链接的配置,包括端口,数据库名
第二步将下面的这个默认代码注释掉
<bean id="primaryAuthenticationHandler"
class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
<property name="users">
<map>
<entry key="casuser" value="Mellon"/>
</map>
</property>
</bean>
换成
<bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<!--dataSource指向上面配置的dataSource bean-->
<property name="dataSource" ref="dataSource" ></property>
<property name="sql" value="select password from cas_t_user where user_name=?" ></property>
<!--passwordEncoder 指向上面配置的 passwordEncoder bean-->
<!-- <property name="passwordEncoder" ref="MD5PasswordEncoder" ></property> -->
</bean>
接着找到id="authenticationManager",将<entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />注释掉换成
<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" />
最后 ,可以了,访问登录主页吧!