shiro

流程:

1.登录请求到controller,使用用户信息获取令牌

UsernamePasswordToken token = new UsernamePasswordToken(username, password, 是否记住);//创建令牌

获取用户名和密码

 Subject subject = SecurityUtils.getSubject();/ 获取Subject单例对象
 subject.login(token);//登录

2.1.Realm:授权领域进行登录认证,再调用service接口进行用户名密码验证

 protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
        UsernamePasswordToken upToken = (UsernamePasswordToken) token;
        user = loginService.login(username, password);//进行验证
 }

2.2.进行授权(获取用户的权限)

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) {
        Long userId = ShiroUtils.getUserId();
        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        // 角色加入AuthorizationInfo认证对象
        info.setRoles(roleService.selectRoleKeys(userId));
        // 权限加入AuthorizationInfo认证对象
        info.setStringPermissions(menuService.selectPermsByUserId(userId));
        return info;
    }

3.权限判断,有权限才能访问此方法

 @RequiresPermissions("权限")//判断此用户是否有权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值