CAS 5.3.1系列之支持JDBC认证登录(二)

作者: smileNicky | 来源:发表于2020-04-29 11:38 被阅读0次

    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

    相关文章

      网友评论

        本文标题:CAS 5.3.1系列之支持JDBC认证登录(二)

        本文链接:https://www.haomeiwen.com/subject/lidgwhtx.html