Spring Seurity系列(二)Security的自定义认证逻辑

一:自定义用户登录逻辑:

1.1:创建MyUserDetailService实现UserDetailService:

@Component
public class MyUserDetailsService implements UserDetailsService {

	private Logger logger = LoggerFactory.getLogger(getClass());
	
	@Autowired
	private PasswordEncoder passwordEncoder;

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.springframework.security.core.userdetails.UserDetailsService#
	 * loadUserByUsername(java.lang.String)
	 */
	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		logger.info("登录用户名:" + username);
		// 根据用户名查找用户信息
		//根据查找到的用户信息判断用户是否被冻结
		String password = passwordEncoder.encode("123456");
		logger.info("数据库密码是:"+password);
		return new User(username, password,
				true, true, true, true,
				AuthorityUtils.commaSeparatedStringToAuthorityList("admin"));
	}

}

其中User是SpringSecurity的默认实现。根据用户名和密码进行登录认证,具体的数据库的操作没有实现。

1.2:密码的加密和解密:

在安全配置类中进行PasswordEncoder注入:

PasswordEncoder每次加密的盐都是随机产生的。即每次相同的密码的加密后的密码是不一样的。

猜你喜欢

转载自blog.csdn.net/newhanzhe/article/details/81157471