CAS统一登录认证(2):与数据库的连接

  上节安装好了测试的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了

猜你喜欢

转载自blog.csdn.net/oLinBSoft/article/details/81912681