系列二、Spring Security核心类

一、Spring Security核心类

1.1、自动配置类

UserDetailsServiceAutoConfiguration

1.2、密码加密器

1.2.1、概述

        Spring Security 提供了多种密码加密方案,官方推荐使用 BCryptPasswordEncoder,BCryptPasswordEncoder 使用 BCrypt 强哈希函数,开发者在使用时可以选择提供 strength 和 SecureRandom 实例。strength 越大,密钥的迭代次数越多,密钥迭代次数为 2^strength。strength 取值在 4~31 之间,默认为 10。不同于 Shiro 中需要自己处理密码加盐,在 Spring Security 中,BCryptPasswordEncoder 就自带了盐,处理起来非常方便。而 BCryptPasswordEncoder 就是 PasswordEncoder 接口的实现类。

1.2.2、PasswordEncoder

public interface PasswordEncoder {
	/*
	 * encode 方法用来对明文密码进行加密,返回加密之后的密文
	 */
    String encode(CharSequence var1);
	
	/*
	 * matches方法是一个密码校对方法,在用户登录的时候,将用户传来的明文密码和数据库中保存的密文密码作为参数,
	 * 传入到这个方法中去,根据返回的 Boolean 值判断用户密码是否输入正确
	 */	
    boolean matches(CharSequence var1, String var2);

	/*
	 * upgradeEncoding 是否还要进行再次加密,这个一般来说就不用了
	 */	
    default boolean upgradeEncoding(String encodedPassword) {
        return false;
    }
}

 

你可能感兴趣的:(Spring,Security,OAuth2.0系列,Spring,Security,OAuth2.0)