超完整的springSecurity用户登录和权限认证(自定义) | 您所在的位置:网站首页 › java权限模块设计实现 › 超完整的springSecurity用户登录和权限认证(自定义) |
创建springboot工程,和引入springSecurity依赖、lombok依赖,mysql依赖,myBatisPlus依赖等相关依赖(根据自己所需)。 但这不是我们的重点,这些相关配置自己实现创建就行,这里就不列出来。 先看一下我的数据库里面的配置信息![]() 上面是hr表,这将代表我们登录时候的用户 上面是hr_role表,把我们的hr和role联系起来 这是menu表,代表我们请求url需要用户的什么权限 上面是menu_role表,把我门的menu和role联系起来 按照springSecurity的流程,我们先实现userDetailsService,覆写里面的用户认证方法 @Service public class HrServiceImpl extends ServiceImpl implements HrService, UserDetailsService { @Autowired private HrMapper hrMapper; //验证数据库中是否有这个员工 @Override public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("username",s); Hr hr = hrMapper.selectOne(wrapper); if(hr==null){ throw new UsernameNotFoundException("用户名不存在"); } hr.setRoles(hrMapper.getRoles(s)); return hr; } }再到我们的hr实体类中,它继承了userDetails接口,在这里我们把我们定义权限信息交给springSecurity //登录员工的类 @Data @TableName("hr") public class Hr implements UserDetails { private int id; private String name; private String phone; private String telephone; private String address; private boolean enabled; private String username; private String password; private String remark; private String userface; @TableField(exist = false) private List roles; //我们定义的role交给springSecurity @Override public Collection |
CopyRight 2018-2019 实验室设备网 版权所有 |