`

【shiro权限管理】5.权限路径配置

 
阅读更多

 

前面的文章中对shiro过滤器的配置如下:

 

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
     <property name="securityManager" ref="securityManager"/>
     <property name="loginUrl" value="/login.jsp"/>
     <property name="successUrl" value="/list.jsp"/>
     <property name="unauthorizedUrl" value="/unauthorized.jsp"/>
     <!--  
     	配置哪些路径资源需要受保护. 
     	以及访问这些页面需要的权限. 
     	1). anon 可以被匿名访问
     	2). authc 必须认证(即登录)后才可能访问的页面. 
     -->
     <property name="filterChainDefinitions">
         <value>
             /login.jsp = anon
             # everything else requires authentication:
             /** = authc
         </value>
     </property>
</bean>

 

 

现在对filterChainDefinitions举些例子,并做简单的解释

 

<property name="filterChainDefinitions">
            <value>
                # some example chain definitions:
                /index.htm = anon
                /logout = logout
                /unauthed = anon
                /console/** = anon
                /css/** = anon
                /js/** = anon
                /lib/** = anon
                /admin/** = authc, roles[admin]
                /docs/** = authc, perms[document:read]
                /** = authc
                # more URL-to-FilterChain definitions here
            </value>
</property>

 

注:anon,authcBasic,auchc,user是认证过滤器,perms,roles,ssl,rest,port是授权过滤器

各种参数配置详解 

anon:例子/admins/**=anon 没有参数,表示无需认证就能访问 

authc:例如/admins/user/**=authc表示需要认证(登录)才能使用,没有参数 

roles:例子/admins/user/=roles[admin],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,例如admins/user/=roles[“admin,guest”],每个参数通过才算通过,相当于hasAllRoles()方法。 

perms:例子/admins/user/=perms[user:add:],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/=perms[“user:add:,user:modify:*”],当有多个参数时必须每个参数都通过才通过,想当于isPermitedAll()方法。 

rest:例子/admins/user/=rest[user],根据请求的方法,相当于/admins/user/=perms[user:method] ,其中method为post,get,delete等。 

port:例子/admins/user/**=port[8081],当请求的url的端口不是8081是跳转到schemal://serverName:8081?queryString,其中schmal是协议http或https等,serverName是你访问的host,8081是url配置里port的端口,queryString 

是你访问的url里的?后面的参数。 

authcBasic:例如/admins/user/**=authcBasic没有参数表示httpBasic认证 

ssl:例子/admins/user/**=ssl没有参数,表示安全的url请求,协议为https 

user:例如/admins/user/**=user没有参数表示必须存在用户,当登入操作时不做检查 

 

url模式匹配

配置的url模式使用Ant风格模式。Ant路径通过通配符支持“?”、“*”、“**”,其中通配符匹配不包括目录分隔符“/”。

对于“?”,其匹配一个字符串。如“/admin?”将匹配“/admin1”,但不匹配“/admin”或“/admin/”。

对于“*”,其匹配零个或多个字符串。如“/admin*”将匹配“/admin”、“/admin123”,但不匹配“/admin/1”。

对于“**”,其匹配路径中的零个或多个路径。如“/admin/**”将匹配“/admin/a”或“/admin/a/b”。

 

url匹配顺序

url权限采取第一次匹配优先的方式,即从头开始使用第一个匹配的url模式对应的拦截器链。

如下面的配置:

/bb/**=filter1

/bb/aa=filter2

/**=filter3

如果请求的url是“/bb/aa”,则按照声明顺序进行匹配,将使用filter1进行拦截。

 

分享到:
评论

相关推荐

    SSM整合Shiro-登录案例.zip

    5. **权限控制**:在Shiro配置中定义角色和权限,然后在页面和控制器上使用Shiro的注解或标签进行权限控制。例如,`@RequiresAuthentication`表示只有已登录用户才能访问,`@RequiresPermissions`则可以限制具有特定...

    shiro权限管理示例

    Apache Shiro是一个强大且易用的Java安全框架,它提供了认证、授权、加密和会话管理功能,可以非常方便地用于构建和强化应用程序的安全性。本示例将深入讲解Shiro在权限管理中的应用。 首先,我们要理解Shiro的核心...

    springboot集成freemarker和shiro框架

    Apache Shiro是一个强大且易用的Java安全框架,处理认证、授权、加密和会话管理,与Spring等其他框架集成良好。 **四、集成Shiro** 1. 添加依赖:在`pom.xml`中添加Shiro依赖: ```xml &lt;groupId&gt;org.apache.shiro...

    SpringBoot与Shiro整合-权限管理实战源码.zip

    SpringBoot简化了Spring应用程序的配置和开发过程,而Shiro则是一个强大的安全管理框架,专注于身份认证、授权(权限管理)、会话管理和安全性相关的实用工具。下面我们将详细探讨SpringBoot与Shiro整合实现权限管理...

    Springboot+shiro权限管理

    本文将深入探讨"Springboot+shiro权限管理"的主题,旨在提供最详尽、最清晰的理解路径。 首先,Spring Boot 是一个基于 Spring 框架的轻量级开发工具,它简化了初始化、配置以及运行Spring应用程序的过程。Spring ...

    基于Shiro 拦截URL,实现权限控制

    在这个主题中,“基于Shiro拦截URL,实现权限控制”意味着我们将探讨如何利用Shiro来管理应用程序中的访问权限,确保用户只能访问他们被授权的资源。 首先,我们需要理解Shiro的三个核心概念: 1. 身份验证...

    springboot shiro最好的例子.zip

    在`ShiroConfig.java`中,我们需要配置一系列过滤器,如anon(匿名访问)、authc(认证过滤器)、roles(角色过滤器)等,并映射到对应的URL路径。 4. **安全控制器**:在Spring Boot的RESTful API设计中,安全控制...

    shiro-all-1.2.3.jar

    在Java应用程序中,Shiro 可以帮助开发者处理身份验证(登录)、授权(权限控制)、会话管理和密码加密等常见安全问题。"shiro-all-1.2.3.jar" 是Apache Shiro框架的一个完整集合,包含了所有必要的类和库,用于在...

    1.初始shiro框架、简单的shiro框架使用.docx

    它提供了强大的身份验证、授权、加密和会话管理功能,帮助开发者快速构建安全的应用程序。下面是 Shiro 框架的基本使用和概念。 身份验证 身份验证是 Shiro 框架的核心功能之一。它提供了多种身份验证机制,包括...

    SpringBoot整合Shiro搭建权限管理组织系统.pdf

    Apache Shiro是一款轻量级的安全框架,提供身份验证、授权、会话管理和加密等核心安全功能,而Spring Boot则简化了Java应用的开发过程,两者结合可以快速构建高效且易于维护的权限控制系统。 首先,我们需要搭建一...

    shiro-web.zip

    5. **Shiro标签库**:在视图层,可以使用Shiro提供的JSP标签进行权限控制,例如`&lt;shiro:hasRole&gt;`和`&lt;shiro:notHasRole&gt;`。 6. **事件监听**:通过实现Shiro的事件监听器,可以在用户登录、登出等特定事件时执行...

    shiro-shiro-root-1.5.3.zip

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、加密和会话管理功能,使得开发者能够轻松处理应用程序的安全需求。"shiro-shiro-root-1.5.3.zip"是一个包含Apache Shiro 1.5.3版本所有依赖JAR包的...

    SpringBoot与Shiro整合-权限管理的简单权限系统.zip

    4. **拦截器配置**:使用SpringBoot的WebMvcConfigurer接口,定义Shiro的拦截器路径,实现权限控制。 5. **启动Shiro**:在SpringBoot的主配置类中,初始化SecurityManager并启动Shiro。 6. **编写认证和授权逻辑*...

    权限管理系统 springboot + shiro + vue.zip

    《基于SpringBoot、Shiro与Vue的权限管理系统详解》 在现代企业级应用开发中,权限管理是一个不可或缺的重要环节。本教程将详细讲解如何利用SpringBoot、Shiro和Vue.js这三个技术栈构建一个完整的权限管理系统。...

    基于SpringBoot+Shiro的仓库管理系统.zip

    2. **授权**:Shiro提供角色和权限管理,可以控制用户对系统资源的访问权限,比如只允许管理员查看库存报告。 3. **会话管理**:Shiro可以统一管理用户的会话,包括会话超时、会话同步等,防止会话固定攻击。 4. **...

    shiro注解版

    shiro.xml : shiro的主要配置... 规则定义在以下地方 : &lt;!-- 过滤链定义 --&gt; &lt;property name="filterChainDefinitions"&gt; &lt;value&gt; /login.jsp* = anon /index.jsp* = authc /index.do* = authc /admin...

    shiro-freemarker权限控制标签

    3. **Freemarker 配置**:在Freemarker配置中,添加Shiro标签库的路径,使得模板引擎能够识别并解析Shiro标签。 4. **使用示例**: ```html &lt;#if shiro.hasPermission('edit:user')}&gt; 编辑用户 ``` **权限...

    shiro权限(1)

    通过对Shiro权限管理的学习,我们不仅了解了其基本原理,还掌握了如何在实际项目中运用这些原理来实现用户认证和授权。Shiro作为一个强大而灵活的安全框架,可以帮助开发者轻松构建安全可靠的Web应用。无论是初学者...

    SpringMVC精品资源--基于SpringBoot + Shiro + MyBatisPlus的权限管理框架.zip

    Spring Boot简化了Spring应用程序的初始搭建以及配置过程,而Shiro则是一个强大的安全管理框架,负责用户认证与授权,MyBatisPlus是对MyBatis的增强工具,简化了SQL操作。下面我们将深入探讨这些技术的核心概念和...

    SpringBoot整合Shiro搭建权限管理组织系统.docx

    5. 配置 Spring Security:由于 Shiro 和 Spring Security 都是安全管理框架,因此需要关闭 Spring Security,以免冲突。 ```java @Configuration @EnableWebSecurity public class WebSecurityConfig extends ...

Global site tag (gtag.js) - Google Analytics