上节安装好了测试的cas认证系统,但只有一个测试账号可以登录,要真正能实际使用,需要在数据库中保存登录账号,以下是连接方法:
1.安装数据库
sudo apt-get install mysql-server
安装过程提示设置密码, root 密码:123
2. 建立库和表
#mysql -uroot -p123
mysql> create database sso;
mysql> use sso
建立表cas 至少包含用户名和密码两个字段
CREATE TABLE cas(id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(30) NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY (id ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中password的加密是用网上在线SHA1加密的字符串
3.重新编译cas.war以支持数据库连接
cd /usr/local/cas-overlay-template-5.3
mvn clean //清理原来编译
nano pom.xml
在<dependencies>节增加:
<!--数据库认证相关 start-->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc-drivers</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.driver.version}</version>
</dependency>
<!--数据库认证相关 end-->
在<properties>节增加:
<mysql.driver.version>5.1.46</mysql.driver.version>
重新编译:
mvn install
等编译好后,替换原来的文件
rm /usr/local/apache-tomcat-8.5.32/webapps/cas.war
rm -rf /usr/local/apache-tomcat-8.5.32/webapps/cas
cp /usr/local/cas-overlay-template-5.3/target/cas.war /usr/local/apache-tomcat-8.5.32/webapps
4. 修改应用配置文件
nano /usr/local/apache-tomcat-8.5.32/webapps/cas/WEB-INF/classes/application.properties
#cas.authn.accept.users=casuser::Mellon
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=SHA
cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/sso?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=123
cas.authn.jdbc.query[0].sql=select * from cas where username=?
cas.authn.jdbc.query[0].fieldPassword=password
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
cas.serviceRegistry.initFromJson=true
#cas.serviceRegistry.watcherEnabled=true
#cas.serviceRegistry.config.location=classpath:/services
注释掉最后一行:
#cas.authn.accept.users=casuser::Mellon
这个是默认的测试账号。
增加如上图的内容,是关于密码加密和连接数据库的,其中密码我采用的是SHA,因为MD5加密cas的加密算法可能和网上的常用MD5加密算法不一致,这个没有找到并研究cas的MD5加密算法,就用了SHA加密
5.重新启动tomcat,顺利的话可以用数据库表里注册的账号密码登录cas了