超完整的springSecurity用户登录和权限认证(自定义) 您所在的位置:网站首页 java权限模块设计实现 超完整的springSecurity用户登录和权限认证(自定义)

超完整的springSecurity用户登录和权限认证(自定义)

2024-07-14 10:11| 来源: 网络整理| 查看: 265

创建springboot工程,和引入springSecurity依赖、lombok依赖,mysql依赖,myBatisPlus依赖等相关依赖(根据自己所需)。   但这不是我们的重点,这些相关配置自己实现创建就行,这里就不列出来。  先看一下我的数据库里面的配置信息

上面是hr表,这将代表我们登录时候的用户 上面是role表,代表我们的用户权限

上面是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 实验室设备网 版权所有