谷粒学院Spring-Security登录授权流程几个小问题分析(初学)

Spring-Security登录授权流程

文字版流程

流程(文字版)

-1 在acl模块新建UserDetailService类(实现ss的UserDeTAILService接口),重写校验密码和查询权限的方法

0 创建SpringSecurity配置类,修改相关的参数

1 浏览器------>服务器后台(表单提交用户名和密码,UserdetailService类的方法查询数据库进行校验),校验成功,根据用户名查询出权限列表

2.1 后台---->redis 存放用户名(username)(key) 权限列表 (value)

2.1后台---->浏览器 返回token(根据用户id),存储在cookie里面,每次调用时将token设置咋iheader里面

3security从header中获取token信息,获取用户名(username)

4 根据username从redis里面取值(权限列表)

5 由ss给用户赋予权限 (在service-acl里面引入security模块的依赖)

那么根据上述的文字信息描述,再对照谷粒学院的相关代码,就可以理解每一步的配置的作用

分割线
##############################

对应步骤-1,在数据库查询用户名密码和权限列表

在这里插入代码片@Service("userDetailsService")
public class UserDetailsServiceImpl implements UserDetailsService {
   

    @Autowired
    private UserService userService;

    @Autowired
    private PermissionService permissionService;

    /***
     * 根据账号获取用户信息
     * @param username:
     * @return: org.springframework.security.core.userdetails.UserDetails
     */
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
   
        // 从数据库中取出用户信息
        User user = userService.selectByUsername(username);

        // 判断用户是否存在
        if (null == user){
   
            //throw new UsernameNotFoundException("用户名不存在!");
        }
        // 返回UserDetails实现类
        com.shalong.serurity.entity.User curUser = new com.shalong.serurity.entity.User();
        BeanUtils.copyProperties(user,curUser);

        List<String> authorities = permissionService.select
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值