单点登陆CAS使用Mysql数据库中用户和密码进行验证
1.首先准备两台服务器进行测试
服务器 | IP | 功能 |
---|---|---|
Tomcat CAS Server | 192.168.73.146 | 运行Tomcat和CAS服务器 |
Mysql Server | 192.168.73.147 | 运行Mysql数据库 |
2.启动Mysql数据
3.创建数据库以及数据表
创建数据库以及数据表
DROP DATABASE IF EXISTS shirodb ;
CREATE DATABASE shirodb CHARACTER SET UTF-8 ;
USE shirodb ;
CREATE TABLE member (
mid VARCHAR(50),
password VARCHAR(50),
name INT,
locaked INT ,
CONSTRAINT pk_mid PRIMARY KEY (mid)
) ENGINE = INNODB ;
添加数据
USE shirodb ;
INSERT INTO member (mid,password,name,locked) VALUES ('admin','hello','管理员',0);
INSERT INTO member (mid,password,name,locked) VALUES ('mermaid','hello','老盛',0);
INSERT INTO member (mid,password,name,locked) VALUES ('sheng','hello','小伟',0);
4.cas服务器连接mysql
(1)准备jar包
序号 | jar包 |
---|---|
1 | c3p0-0.9.5.2.jar |
2 | mchange-commons-java-0.2.11.jar |
3 | cas-server-support-jdbc-4.1.5.jar |
4 | mysql-connector-java-5.0.8-bin.jar |
将如上jar下载在tomcat目录中cas的WEB-INF的lib目录下
5.修改cas服务器的配置文件
配置文件 deployerConfigContext.xml 位置如下
配置数据源,加入以下内容
<bean id="dateSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--${}是引入properties文件内容的-->
<property name="driverClass" value="org.gjt.mm.mysql.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://192.168.73.146:3306/shirodb"/>
<property name="user" value="root"/>
<property name="password" value="123"/>
<property name="maxPoolSize" value="1"/>
<property name="minPoolSize" value="1"/>
<property name="initialPoolSize" value="1"/>
<property name="maxIdleTime" value="20"/>
</bean>
增加数据检测验证器,加入如下内容
<bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dateSource" ref="dataSource"/>
<property name="sql" value="select password from member where mid=? AND locked=0"/>
</bean>
修改权限处理类,下面需要做一个配置项的替换将
<entry key-ref="primaryPrincipalResolver" value-ref="primaryPrincipalResolver" />
替换为
<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" />
6.启动tomcat
如果启动有问题可以进入tomcat中的logs目录中查询
登陆入服务器地址
出现CAS验证窗口,输入数据库保存的用户名和密码
成功!!!