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

你猜 阅读:690 2021-03-31 17:02:28 评论:0

第一:项目整体结构:

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

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

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 服务端登入界面,输入正确用户名和密码,返回相关数据结果:

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号