zoukankan      html  css  js  c++  java
  • frame shiro 授权及原理简述

    shiro 授权模式

    shiro采用的是rbac授权模式
    rbac,基于角色的权限管理,谁扮演什么角色,被允许做什么事情。


    shiro 授权流程


    shiro 授权方式

    1、编程式

    通过写if/else授权代码块完成

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

    2、注解式

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

    如果主体里没有admin角色,不能进入方法
    @RequiresRoles("admin")
    public void hello() {
        // 有权限
    }

    3、JSP标签式

    <shiro:hasRole name="admin">
        <!-- 有权限,这个按钮显示 -->
    </shiro:hasRole>

    shiro 授权流程分析

    1、首先调用Subject.isPermitted*/hasRole*接口,其会委托给SecurityManager,而SecurityManager接着会委托给Authorizer
    2、Authorizer是真正的授权者,如果我们调用如isPermitted(“user:view”),其首先会通过PermissionResolver把字符串转换成相应的Permission实例;
    3、在进行授权之前,其会调用相应的Realm获取Subject相应的角色/权限用于匹配传入的角色/权限;
    4、Authorizer会判断Realm的角色/权限是否和传入的匹配,如果有多个Realm,会委托给ModularRealmAuthorizer进行循环判断,如果匹配如isPermitted*/hasRole*会返回true,否则返回false表示授权失败。

  • 相关阅读:
    [Delphi] 两种类的声明方法
    [Delphi]TMemoryStatus获取内存信息
    各大网站架构总结笔记[转]
    常用CSS命名参考资料
    常用的CSS Reset
    网页制作之CSS超级技巧
    SQL服务无法正常启动及数据库卸载
    常用CSS缩写语法
    视频播放器代码参数详解
    优秀的 Web 开发人员是这样炼成的
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/9879083.html
Copyright © 2011-2022 走看看