zoukankan      html  css  js  c++  java
  • Shiro授权流程

    1,授权中涉及的一些概念
         [1]授权:访问控制,即在应用中认证用户能否访问的系统资源(如一个页面,一个按钮等)。
         [2]资源:在Web应用中反应为用户可以访问的URL。
         [3]权限:表示用户在应用中是否能够访问某个资源。
         [4]角色:权限的集合。
     
    2,Shiro授权方式
         [1]编程式
         [2]注解式
         [3]jsp/gsp标签式
     
    3,Shiro默认拦截器
         Shiro内置了很多默认的拦截器,比如身份验证,授权等相关的。默认拦截器可以参考org.apache.web.filter.mgt.DefaultFilter中的枚举拦截器。
     
     
    4,Shiro授权流程
         [1]授权需要继承 AuthorizingRealm 类(该类继承自 AuthenticationRealm 类),并重写其 doGetAuthorizationInfo() 方法。
      

      

     

             
         
         [2]多Realm授权的通过标准,多Realm应用下,使用ModularRealmAuthorizer授权器,只要有一个Realm授权就算通过。在ModularRealmAuthorizer循环授权的时候,还是走的第[1]条的流程,所以不用担心。
      
    ############################### Shiro jsp标签库 ##########################################
    Shiro 提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据认证用户相应的页面按钮。
    首先,需要导入标签库:
    <%@ taglib uri="http://org.apache.shiro/tags" uri="shiro" %>
     
    1,guest标签
         游客登陆时,显示标签体内的内容。
    2,authenticated标签
         用户认证通过,显示标签体内的内容。
    3,noAuthenticated标签
         用户未通过认证(包括【记住我】方式登陆),显示标签体内的内容。
    4,principal标签
         显示用户身份信息,如果realm传递的principal是一个对象,可以使用该标签的property来显示具体属性的值。
    5,hasRole和hasAnyRoles
         拥有指定的角色,显示标签体内的内容。
    6,lacksRole
         没有指定的角色,显示标签体内的内容。
    7,hasPermissioin和hasAnyPermissions
         拥有指定的权限,显示标签体内的内容。
    8,lacksPermission
         没有指定的角色,显示标签体内的内容。
     
     
     
    ############################### Shiro 注解 ##########################################
    shiro注解用在Service和Controller层,但是如果Service层有事物注解,那么shiro注解要放在Controller层。因为两个代理对象在类型转换时会出现异常。
     
    1,RequiresAuthentication
         要求用户已经被认证过。
    2,RequiresGuest注解
         要求访客才能访问。
    3,RequiresPermissions
         要求拥有指定的权限。
    4,RequiresRoles
         要求拥有指定的角色。
     
    如果达不到注解所需要的要求,会抛出异常。
  • 相关阅读:
    通过在vs中”程序包管理器控制台“的输入命令来实现下载和安装所需版本的Mysql.data和Mysql.Data.Entity.EF6
    ireport使用问题
    mysql数据库迁移到达梦数据库
    Idea配置热部署
    阿里云双12年终钜惠
    移动端弹性布局方案lib-flexible实践
    阿里云服务器2折起
    javascript百度地图使用(根据地名定位、根据经纬度定位)
    js拖拽上传图片
    javascript xml转json
  • 原文地址:https://www.cnblogs.com/startcaft/p/7298163.html
Copyright © 2011-2022 走看看