为这段代码添加注释@Component public class UserDetailsServiceImpl implements UserDetailsService { @Autowired private PasswordEncoder passwordEncoder; @Autowired private UserRepository userRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { /** * 从数据库查:User是我自己写的类,getOne()是mybatis_plus的中的方法 * 就通过用户名查出一个用户 */ // 这个要从数据库取出来 User usersByUsername = userRepository.findUsersByUsername(username); if (null == usersByUsername) { throw new UsernameNotFoundException(CodeMsg.ADMIN_USERNAME_NO_EXIST.getMsg()); } /** * 创建一个权限集合,随你放多少 * 最后返回一个org.springframework.security.core.userdetails包下的User * 授权就给完了 * 我这里授权的是USER; */ ArrayList<SimpleGrantedAuthority> arrayList = new ArrayList<>(); arrayList.add(new SimpleGrantedAuthority("ROLE_USER")); return new org.springframework.security.core.userdetails.User(usersByUsername.getUsername(),usersByUsername.getPassword(),arrayList); } }
时间: 2023-06-27 08:01:31 浏览: 148
/**
* 这是一个实现了UserDetailsService接口的类,用于加载用户信息
*/
@Component
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private PasswordEncoder passwordEncoder; // 密码加密器
@Autowired
private UserRepository userRepository; // 用户信息仓库
/**
* 通过用户名查找用户信息
* @param username 用户名
* @return 返回一个UserDetails类型的对象
* @throws UsernameNotFoundException 如果用户名不存在则抛出该异常
*/
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// 从数据库中查找指定用户名的用户信息
User usersByUsername = userRepository.findUsersByUsername(username);
if (null == usersByUsername) {
// 如果未查询到该用户,则抛出异常
throw new UsernameNotFoundException(CodeMsg.ADMIN_USERNAME_NO_EXIST.getMsg());
}
// 创建一个权限集合,这里只授权了USER
ArrayList<SimpleGrantedAuthority> arrayList = new ArrayList<>();
arrayList.add(new SimpleGrantedAuthority("ROLE_USER"));
// 返回一个org.springframework.security.core.userdetails包下的User对象,其中包含用户信息和授权信息
return new org.springframework.security.core.userdetails.User(
usersByUsername.getUsername(),
usersByUsername.getPassword(),
arrayList
);
}
}
阅读全文