栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

cas整合spring boot

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cas整合spring boot

下载cas模板网址:

https://github.com/apereo/cas-overlay-template/tree/5.3

​

下载之后解压使用idea打开

项目根src/main/resources目录并把overlaysorg.apereo.cas.cas-server-webapp-tomcat-5.3.16WEB-INFclassesapplication.properties文件复制到resources目录下

​

 然后修改overlaysorg.apereo.cas.cas-server-webapp-tomcat-5.3.16WEB-INFclassesservicesHTTPSandIMAPS-10000001.json文件

​

 将serviceId由原本的"^(https|imaps)://.*"改为"^(https|imaps|http)://.*"

备注:这里修改的文件是为了客户端登录,不改会报错

到这里已经可以启动测试了 用户名:casuser 密码:Mellon 这是默认的(可以手动修改,在application.properties文件的最后一行)

 ​

接下来修改application.properties文件,加入如下配置

cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
#查询账号密码sql,必须包含密码字段
cas.authn.jdbc.query[0].sql=select * from sys_user where username=?
#指定上面的sql查询字段名(必须)
cas.authn.jdbc.query[0].fieldPassword=password
#数据库驱动
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
#数据库连接
cas.authn.jdbc.query[0].url=jdbc:mysql://你的数据库IP地址:3306/你的数据库名?useUnicode=true&characterEncoding=UTF-8
#数据库用户名
cas.authn.jdbc.query[0].user=你的数据库连接名
#数据库密码
cas.authn.jdbc.query[0].password=你的数据库连接密码
#默认加密策略,通过encodingAlgorithm来指定算法,默认NONE不加密
cas.authn.jdbc.query[0].passwordEncoder.type=com.cas.MyPasswordEncoder
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

 这里的加密策略type原本应该是DEFAULT,因为我的数据库存的用户密码加密是MD5密文大写,

它这里只能匹配小写的密文,所以我自定义了一个加密策略(其实就是拦截一下把密码的密文改为大写)

 创建类:

 自定义加密策略代码如下:

package com.cas;

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

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Locale;

public class MyPasswordEncoder implements PasswordEncoder {

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

    @Override
    public boolean matches(CharSequence charSequence, String str) {
        //charSequence 为用户输入的密码,str 为数据库的密码
        //将用户输入的密码进行MD5加密之后改为大写
        charSequence = encryption(charSequence.toString()).toUpperCase(Locale.ROOT);
        if (charSequence.equals(str)){
            return true;
        }
        return false;
    }

    private String encryption(String str){
        StringBuilder md5= new StringBuilder();
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
            byte[] bytes=messageDigest.digest();
            for(byte b:bytes){
                md5.append(byteToHex(b));
            }
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return md5.toString();
    }

    private String byteToHex(byte b){
        String hex = Integer.toHexString(b & 0xFF);
        if(hex.length() < 2){
            hex = "0" + hex;
        }
        return hex;
    }
}

pom文件加入MySQL依赖:

 

                
                    org.apereo.cas
                    cas-server-support-jdbc
                    ${cas.version}
                
                
                    org.apereo.cas
                    cas-server-support-jdbc-drivers
                    ${cas.version}
                
                
                    mysql
                    mysql-connector-java
                    ${mysql.driver.version}
                

至此,cas服务端配置完毕!

接下来配置客户端,也就是spring boot项目

pom文件增加依赖:

 

        
            net.unicon.cas
            cas-client-autoconfig-support
            1.4.0-GA
        
        
            org.springframework.security
            spring-security-cas
        
        
            org.springframework.boot
            spring-boot-configuration-processor
            true
        
        
            org.jasig.cas.client
            cas-client-core
            3.4.1
        

启动类加@EnableCasClient注解

 application.yaml加入配置

 完事!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号