spring security登录认证流程

Java81

spring security登录认证流程

1、前端携带用户名和面膜发送请求,controller接收到后,调用service的login方法

2、根据传过来的用户名和密码生成UsernamePasswordAuthenticationToken(这个token里面存放了用户名和密码)

UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(),user.getPassword());

3、根据上面获得的token进行认证,如果认证失败为空,否则获取认证对象authenticate的Principal里面存了这个用户的所有信息。

步骤是:1、我们需要定义一个类去实现UserDetailsService接口的loadUserByUsername方法
@Servicepublic class UserDetailsServiceImpl implements UserDetailsService {    @Autowired    private UserMapper userMapper;    @Override    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {        //根据用户名查询用户信息        LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();        queryWrapper.eq(User::getUserName,username);        User user = userMapper.selectOne(queryWrapper);        //判断是否查到用户  如果没查到抛出异常        if(Objects.isNull(user)){            throw new RuntimeException("用户不存在");        }        //返回用户信息        // TODO 查询权限信息封装        return new LoginUser(user);    }}
输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长