1.文章内容简介
文章对Ruoyi-Vue项目中后端的SpringSecurity安全框架的使用进行了解析
2.关键的实现类
2.1SysUserServiceImpl类
这个类主要的工作是进行SysUser信息的相关操作,查询、删除、更新等。
2.2SysPermissionService类
2.3UserDetailServiceImpl、LoginUser类的实现
使用SpringSecurity自定义登录逻辑,都需要实现UserDetailService类,并在loginUserByUsername方法中调用SysUserServiceImpl和SysPermissionService返回一个实现了UserDetail的实体类(封装用户信息)。
看不懂?上代码
@Servicepublic class UserDetailsServiceImpl implements UserDetailsService{@Autowiredprivate SysUserService userService;@Autowiredprivate SysPermissionService permissionService;@Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException{SysUser user = userService.selectUserByUserName(username);SysPermission permission=permissionService.getMenuPermission(user)return new LoginUser(user,permission);}}
2.4TokenService类
2.5JwtAuthenticationTokenFilter类
JwtAuthenticationTokenFilter 放在SpringSecurity过滤链中的UserNamePasswordAuthenticaitonFilter之前,对含有jwt令牌的请求信息进行登录信息的获取。使用TokenService通过jwt获取用户登录信息
2.6AuthenticationEntryPointImpl类
AuthenticationEntryPointImpl类设置认证失败后或者没有权限访问接口时返回的错误信息
2.7SysLoginController、SysLoginService类
SysLoginController类会调用SysLoginService,SysLoginServcie会通过AuthenticationManager对用户信息进行认证,AuthenticationManager会调用UserDetailsServiceImpl类(2.3中的类)查询数据库完成用户的身份认证。最后使用TokenService生成JWT令牌并返回。
3.RuoYi登录流程形象化描述

