• 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
         要求拥有指定的角色。
     
    如果达不到注解所需要的要求,会抛出异常。
  • 相关阅读:
    C#中Excel的导入和导出的几种基本方式
    关于XML与类型Class的映射
    关于模板的相关注意事项
    OGRE 2.1 Windows 编译
    R6010 -abort() has been called
    VS2012 编译 Assimp
    C++ 并发消息队列
    Debian 安装下载工具软件
    Oracle SQL语句追踪
    记录自己学习网址
  • 原文地址:https://www.cnblogs.com/startcaft/p/7298163.html
Copyright © 2020-2023  润新知