3.自定义登录逻辑
在springsecuritydemo下创建config包,下面创建SecurityConfig类
里面创建一个自定义密码的对象
SecurityConfig.java
/**
* @author etern
* @title: SecurityConfig
* @projectName springsecuritydemo
* @description: TODO SpringSecurity配置类
* @date 2022/1/21 20:27
*/
//config注解
@Configuration
public class SecurityConfig {
@Bean
public PasswordEncoder getPw() {
return new BCryptPasswordEncoder();
}
}
创建service层下impl下的UserDetailServiceImpl类
UserDetailServiceImpl.java
/**
* @author etern
* @title: UserDetailsServiceImpl
* @projectName springsecuritydemo
* @description: TODO UserDetailsService实现类
* @date 2022/1/21 20:33
*/
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private PasswordEncoder pw;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//1.查询数据库判断用户名是否存在,如果不存在就会抛出UsernameNotFoundException异常
if (!"admin".equals(username)) {
throw new UsernameNotFoundException("用户名不存在!");
}
//2.把查询出来的密码(注册时已经加密过)进行解析,或者直接把密码放入构造方法中
String password = pw.encode("123");
return new User(username, password, AuthorityUtils.commaSeparatedStringToAuthorityList("admin,normal"));
}
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Eternal Night
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果