写项目的时候,用Security框架,结果一直没有执行自定义认证逻辑,找了好久才发现,没有放入Spring中(也就是没写@Service注解)
//自定义认证逻辑 @Service public class MyUserDetailsService implements UserDetailsService { @Autowired private UsersMapper usersMapper; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { users u=usersMapper.findUsersByUserName(username); if(u==null){ return null; } // 数据库存在该用户 // 首先查询该用户的权限,并放入security的权限集合 System.out.println("查找到的用户="+u); List<GrantedAuthority> grantedAuthorities=new ArrayList<>(); List<permission> permissionList=usersMapper.findPermissionsByUsername(username); for(permission p:permissionList){ grantedAuthorities.add(new SimpleGrantedAuthority(p.getUrl())); } UserDetails userDetailsr=User.withUsername(u.getName()) .password(u.getPassword()) .authorities(grantedAuthorities) .build(); return userDetailsr; } }
SpringBoot整合Security中自定义认证逻辑一致没有执行,为什么呢?
最新推荐文章于 2024-05-20 09:59:30 发布