shiro初步 shiro授权

简介: 授权流程三种授权方法Shiro 支持三种方式的授权: 编程式:通过写if/else 授权代码块完成:Subject subject = SecurityUtils.getSubject();if(subject.hasRole(“admin”)) { //有权限 } else { //无权限 }注解式:通过在执行的Java

授权流程

这里写图片描述

三种授权方法

Shiro 支持三种方式的授权:
编程式:通过写if/else 授权代码块完成:

Subject subject = SecurityUtils.getSubject();
if(subject.hasRole(“admin”)) {
    //有权限
    } else {
    //无权限
    }

注解式:通过在执行的Java方法上放置相应的注解完成:

@RequiresRoles("admin")
public void hello() {
//有权限
}

JSP/GSP 标签:在JSP/GSP 页面通过相应的标签完成:

<shiro:hasRole name="admin">
<!— 有权限—>
</shiro:hasRole>

在原来自定义的realm中,修改doGetAuthorizationInfo方法

1、对subject进行授权,调用方法isPermitted(”permission串”)
2、SecurityManager执行授权,通过ModularRealmAuthorizer执行授权
3、ModularRealmAuthorizer执行realm(自定义的CustomRealm)从数据库查询权限数据
调用realm的授权方法:doGetAuthorizationInfo
4、realm从数据库查询权限数据,返回ModularRealmAuthorizer
5、ModularRealmAuthorizer调用PermissionResolver进行权限串比对
6、如果比对后,isPermitted中”permission串”在realm查询到权限数据中,说明用户访问permission串有权限,否则 没有权限,抛出异常。

GitHub下载地址

目录
相关文章
|
存储 JSON 前端开发
Shiro实现记住我(十)
Shiro实现记住我(十)
429 0
Shiro实现记住我(十)
|
7月前
|
Java 数据安全/隐私保护
Shiro - 授权那些事
Shiro - 授权那些事
57 0
|
安全 测试技术 API
Shiro详解
Shiro详解
123 0
|
安全 Java 容器
深入理解Shiro(下)
深入理解Shiro(下)
81 0
|
存储 缓存 安全
|
消息中间件 JavaScript 小程序
再见了 shiro
再见了 shiro
|
消息中间件 安全 JavaScript
再见了 shiro !
再见了 shiro !
|
存储 缓存 安全
Shiro框架01之什么是shiro+shiro的架构+权限认证
Shiro框架01之什么是shiro+shiro的架构+权限认证
Shiro框架01之什么是shiro+shiro的架构+权限认证
|
安全 数据安全/隐私保护
【Shiro】4、Shiro实现记住登录功能
用户每次在登录系统时需要重新输入账户、密码、验证码等信息,非常麻烦,于是要求加一个记住登录的功能,这对于 Shiro 来说是非常简单,下面就让我们一起来实现记住登录功能
182 0
【Shiro】4、Shiro实现记住登录功能
|
Java 数据安全/隐私保护
shiro(二)shiro详解(1)
shiro(二)shiro详解
250 0
shiro(二)shiro详解(1)