欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Cas服务端5.3.2 之自定义密码认证

程序员文章站 2024-01-29 18:03:28
...

第一:项目整体结构:

Cas服务端5.3.2 之自定义密码认证

注意:Java Resources 设置src/main/java 和src/main/resources 目录,并将src/main/java设置为代码文件根目录,将src/main/resources设置为资源文件根目录。截图如下:

Cas服务端5.3.2 之自定义密码认证

Cas服务端5.3.2 之自定义密码认证

第二步:自定义数据密码加密工具类

package com.digipower.encrypt;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 自定义数据密码加密工具类
 * @author zzg
 *
 */
public class PasswordEncryption implements PasswordEncoder{

	@Override
	public String encode(CharSequence password) {
		return DigestUtils.md5Hex(password.toString()).toUpperCase();
	}

	@Override
	public boolean matches(CharSequence rawPassword, String encodePassword) {
		// 判断密码是否存在
        if (rawPassword == null) {
            return false;
        }
        //通过md5加密后的密码
        String pass = this.encode(rawPassword.toString());
        //比较密码是否相等的问题
        return pass.equals(encodePassword);
	}

}

注意:PasswordEncoder接口,有encode方法,一个返回经过加密规则的String类型,matches方法返回对比结果,boolean 类型。

第三步:修改application.properties 文件,将passwordEncoder.type改为自己的实现类

# md5 encryption
cas.authn.jdbc.query[0].passwordEncoder.type=com.digipower.encrypt.PasswordEncryption
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
# md5 encryption policy
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

第四步:访问http://localhost:9100/cas/index,跳转至CAS 服务端登入界面,输入正确用户名和密码,返回相关数据结果:

Cas服务端5.3.2 之自定义密码认证

Cas服务端5.3.2 之自定义密码认证