1.文章内容简介
文章对Ruoyi-Vue项目中后端的SpringSecurity安全框架的使用进行了解析
2.关键的实现类
2.1SysUserServiceImpl类
这个类主要的工作是进行SysUser信息的相关操作,查询、删除、更新等。
2.2SysPermissionService类
2.3UserDetailServiceImpl、LoginUser类的实现
使用SpringSecurity自定义登录逻辑,都需要实现UserDetailService
类,并在loginUserByUsername
方法中调用SysUserServiceImpl
和SysPermissionService
返回一个实现了UserDetail
的实体类(封装用户信息)。
看不懂?上代码
@Service
public class UserDetailsServiceImpl implements UserDetailsService
{
@Autowired
private SysUserService userService;
@Autowired
private SysPermissionService permissionService;
@Override
public 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令牌并返回。