CAS之5.2x版本自定义密码验证-yellowcong

上一篇讲解了,如何通过进行Cas的默认的密码加密验证,这一篇,讲解如何通过手动加密,做一个自己的加密策略,基本思路上是,实现org.springframework.security.crypto.password.PasswordEncoder接口,然后复写验证方法,我就简单的写了MD5验证

环境搭建

直接拷贝我的项目即可,然后导入到eclipse中

http://yellowcong.qiniudn.com/cas-overlay-template-master.7z

工程目录结构

下面的目录配置中,会发现,多一些jar包,这是由于我的网,访问国外的比较费劲,所以就把jar单独下载下来了
CAS之5.2x版本自定义密码验证-yellowcong_第1张图片

加密的类

加密的类,必须实现org.springframework.security.crypto.password.PasswordEncoder,因为验证的时候,cas就是调用接口,然后验证是否正确

package com.yellowcong.cas;

import java.math.BigInteger;
import java.security.MessageDigest;

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

public class CustomPasswordEncoder implements PasswordEncoder {

    public String encode(CharSequence password) {
        try {
            //给数据进行md5加密
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(password.toString().getBytes());
            return new BigInteger(1, md.digest()).toString(16);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 调用这个方法来判断密码是否匹配
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodePassword) {
        // 判断密码是否存在
        if (rawPassword == null) {
            return false;
        }

        //通过md5加密后的密码
        String pass = this.encode(rawPassword.toString());
        //比较密码是否相等的问题
        return pass.equals(encodePassword);
    }
}

注册加密的类

编辑application.properties 文件,添加加密策略注意里面配置了mysql的数据连接认证,不需要的可以删除掉

#采用MD5加密
cas.authn.jdbc.query[0].passwordEncoder.type=com.yellowcong.cas.CustomPasswordEncoder
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
#MD5加密策略
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

CAS之5.2x版本自定义密码验证-yellowcong_第2张图片

编译

执行maven install 编译
CAS之5.2x版本自定义密码验证-yellowcong_第3张图片

编译成功后,放到tomcat中,跑一下,就可以了,记住tomcat版本需要在8以上
CAS之5.2x版本自定义密码验证-yellowcong_第4张图片

测试

CAS之5.2x版本自定义密码验证-yellowcong_第5张图片

登录成功
CAS之5.2x版本自定义密码验证-yellowcong_第6张图片

你可能感兴趣的:(tomcat,CAS单点登录,单点登录)