CAS 5.3.1系列之支持JDBC認證登錄(二)


CAS 5.3.1系列之支持JDBC認證登錄(二)

在項目中,我們肯定是不能用默認的靜態賬號密碼,所以我們需要實現對jdbc或者其它認證方式的支持,將cas-overlay-template-5.2\pom.xml復制到項目里,將application.properties復制到resources文件夾

<!--新增支持jdbc驗證-->
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-support-jdbc</artifactId>
            <version>${cas.version}</version>
        </dependency>

        <!--自適配數據庫驅動,其中包括HSQLDB、Oracle、MYSQL、PostgreSQL、MariaDB、Microsoft SQL Server-->
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-support-jdbc-drivers</artifactId>
            <version>${cas.version}</version>
        </dependency>

注意5.3.1版本的cas-server-support-jdbc-drivers數據庫驅動是mysql8左右的,所以如果是mysql5版本的,就不使用自適配驅動,自己加上:

 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.27</version>
        </dependency>

ok,然后需要在application.properties加上:


##
# JDBC Authentication
#
# 查詢賬號密碼SQL,必須包含密碼字段
cas.authn.jdbc.query[0].sql=select * from sys_user where username=?
# 指定上面的SQL查詢字段名(必須)
cas.authn.jdbc.query[0].fieldPassword=password
# 指定過期字段,1為過期,若過期不可用
cas.authn.jdbc.query[0].fieldExpired=expired
# 為不可用字段段,1為不可用,需要修改密碼
cas.authn.jdbc.query[0].fieldDisabled=disabled
# 數據庫連接
cas.authn.jdbc.query[0].url=jdbc:mysql://192.168.0.159:3306/jeeplatform?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8
# 數據庫dialect配置
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
# 數據庫用戶名
cas.authn.jdbc.query[0].user=root
# 數據庫用戶密碼
cas.authn.jdbc.query[0].password=root
# 數據庫事務自動提交
cas.authn.jdbc.query[0].autocommit=false
# 數據庫驅動
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
# 超時配置
cas.authn.jdbc.query[0].idleTimeout=50000
# 默認加密策略,通過encodingAlgorithm來指定算法,默認NONE不加密
# NONE|DEFAULT|STANDARD|BCRYPT|SCRYPT|PBKDF2
cas.authn.jdbc.query[0].passwordEncoder.type=NONE
#cas.authn.jdbc.query[0].passwordEncoder.type=org.muses.jeeplatform.cas.authentication.encode.MD5PasswordEncoder
# 字符類型
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
# 加密算法
#cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
# 加密鹽
#cas.authn.jdbc.query[0].passwordEncoder.secret=
# 加密字符長度
#cas.authn.jdbc.query[0].passwordEncoder.strength=16

然后啟動項目,訪問,暫時不用密碼加密方式,如果要MD5密碼可以如下設置

# NONE|DEFAULT|STANDARD|BCRYPT|SCRYPT|PBKDF2
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

也可以自定義加密方式:

import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * <pre>
 *   自定義PasswordEncoder
 * </pre>
 *
 * <pre>
 * @author mazq
 * 修改記錄
 *    修改后版本:     修改人:  修改日期: 2020/04/24 17:02  修改內容:
 * </pre>
 */
public class MD5PasswordEncoder implements PasswordEncoder {

    @Override
    public String encode(CharSequence charSequence) {
        return charSequence.toString();
    }

    @Override
    public boolean matches(CharSequence charSequence, String s) {
        String encodeStr = charSequence.toString() + "aa";
        if (encodeStr.equals(s)) {
            return true;
        }
        return false;
    }
}

然后修改配置:

cas.authn.jdbc.query[0].passwordEncoder.type=org.muses.jeeplatform.cas.authentication.encode.MD5PasswordEncoder

在這里插入圖片描述

在這里插入圖片描述

代碼例子參考:github下載鏈接

詳情可以參考官方文檔:https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties.html

優質參考博客:
https://www.cnblogs.com/jpeanut/tag/CAS/
https://blog.csdn.net/anumbrella/category_7765386.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM