zoukankan      html  css  js  c++  java
  • Apache Shiro 使用手册(五)Shiro 配置说明(转发:http://kdboy.iteye.com/blog/1169637)

    Apache Shiro的配置主要分为四部分: 

    • 对象和属性的定义与配置
    • URL的过滤器配置
    • 静态用户配置
    • 静态角色配置

    其中,由于用户、角色一般由后台进行操作的动态数据,因此Shiro配置一般仅包含前两项的配置。 

    Apache Shiro的大多数组件是基于POJO的,因此我们可以使用POJO兼容的任何配置机制进行配置,例如:Java代码、Sping XML、YAML、JSON、ini文件等等。下面,以Spring XML的配置方式为例,并且对其中的一些配置参数进行一些简单说明。 

    Shiro对象的配置: 
    主要是对Shiro各个组件的实现进行定义配置,主要组件在前文已做过简单介绍,这里不再一一说明。 

    Xml代码  收藏代码
    1. <bean id="securityManager" class="org.apache.shiro.mgt.DefaultSecurityManager">  
    2.         <property name="cacheManager" ref="cacheManager"/>  
    3.         <property name="sessionMode" value="native"/>  
    4.         <!-- Single realm app.  If you have multiple realms, use the 'realms' property instead. -->  
    5.         <property name="realm" ref="myRealm"/>  
    6.         <property name="sessionManager" ref="sessionManager"/>   
    7. </bean>  



    Shiro过滤器的配置 
    Shiro主要是通过URL过滤来进行安全管理,这里的配置便是指定具体授权规则定义。 

    Xml代码  收藏代码
    1. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">  
    2.     <property name="securityManager" ref="securityManager"/>  
    3.     <property name="loginUrl" value="/login.jsp"/>  
    4.     <property name="successUrl" value="/home.jsp"/>  
    5.     <property name="unauthorizedUrl" value="/unauthorized.jsp"/> -->  
    6.     <property name="filterChainDefinitions">  
    7.         <value>  
    8.             # some example chain definitions:  
    9.             /admin/** = authc, roles[admin]  
    10.             /docs/** = authc, perms[document:read]  
    11.             /** = authc  
    12.             # more URL-to-FilterChain definitions here  
    13.         </value>  
    14.     </property>  
    15. </bean>  


    URL过滤器配置说明: 
    Shiro可以通过配置文件实现基于URL的授权验证。FilterChain定义格式: 
    URL_Ant_Path_Expression = Path_Specific_Filter_Chain 
    每个URL配置,表示匹配该URL的应用程序请求将由对应的过滤器进行验证。 
    例如: 
    [urls] 
    /index.html = anon 
    /user/create = anon 
    /user/** = authc 
    /admin/** = authc, roles[administrator] 
    /rest/** = authc, rest 
    /remoting/rpc/** = authc, perms["remote:invoke"] 

    URL表达式说明 
    1、URL目录是基于HttpServletRequest.getContextPath()此目录设置 
    2、URL可使用通配符,**代表任意子目录 
    3、Shiro验证URL时,URL匹配成功便不再继续匹配查找。所以要注意配置文件中的URL顺序,尤其在使用通配符时。 

    Filter Chain定义说明 
    1、一个URL可以配置多个Filter,使用逗号分隔 
    2、当设置多个过滤器时,全部验证通过,才视为通过 
    3、部分过滤器可指定参数,如perms,roles 

    Shiro内置的FilterChain 

    Filter Name Class
    anon org.apache.shiro.web.filter.authc.AnonymousFilter
    authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter
    authcBasic org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
    perms org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
    port org.apache.shiro.web.filter.authz.PortFilter
    rest org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
    roles org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
    ssl org.apache.shiro.web.filter.authz.SslFilter
    user org.apache.shiro.web.filter.authc.UserFilter
  • 相关阅读:
    OleDbCommand 的用法
    递归求阶乘
    C#重写窗体的方法
    HDU 5229 ZCC loves strings 博弈
    HDU 5228 ZCC loves straight flush 暴力
    POJ 1330 Nearest Common Ancestors LCA
    HDU 5234 Happy birthday 01背包
    HDU 5233 Gunner II 离散化
    fast-IO
    HDU 5265 pog loves szh II 二分
  • 原文地址:https://www.cnblogs.com/sutao/p/8601615.html
Copyright © 2011-2022 走看看