前面的文章中对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进行拦截。
相关推荐
5. **权限控制**:在Shiro配置中定义角色和权限,然后在页面和控制器上使用Shiro的注解或标签进行权限控制。例如,`@RequiresAuthentication`表示只有已登录用户才能访问,`@RequiresPermissions`则可以限制具有特定...
Apache Shiro是一个强大且易用的Java安全框架,它提供了认证、授权、加密和会话管理功能,可以非常方便地用于构建和强化应用程序的安全性。本示例将深入讲解Shiro在权限管理中的应用。 首先,我们要理解Shiro的核心...
SpringBoot简化了Spring应用程序的配置和开发过程,而Shiro则是一个强大的安全管理框架,专注于身份认证、授权(权限管理)、会话管理和安全性相关的实用工具。下面我们将详细探讨SpringBoot与Shiro整合实现权限管理...
本文将深入探讨"Springboot+shiro权限管理"的主题,旨在提供最详尽、最清晰的理解路径。 首先,Spring Boot 是一个基于 Spring 框架的轻量级开发工具,它简化了初始化、配置以及运行Spring应用程序的过程。Spring ...
在这个主题中,“基于Shiro拦截URL,实现权限控制”意味着我们将探讨如何利用Shiro来管理应用程序中的访问权限,确保用户只能访问他们被授权的资源。 首先,我们需要理解Shiro的三个核心概念: 1. 身份验证...
在`ShiroConfig.java`中,我们需要配置一系列过滤器,如anon(匿名访问)、authc(认证过滤器)、roles(角色过滤器)等,并映射到对应的URL路径。 4. **安全控制器**:在Spring Boot的RESTful API设计中,安全控制...
在Java应用程序中,Shiro 可以帮助开发者处理身份验证(登录)、授权(权限控制)、会话管理和密码加密等常见安全问题。"shiro-all-1.2.3.jar" 是Apache Shiro框架的一个完整集合,包含了所有必要的类和库,用于在...
Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等核心功能。在Java项目中,Shiro可以帮助开发者轻松地处理用户的安全需求,从而让开发者可以更加专注于业务逻辑的实现。...
它提供了强大的身份验证、授权、加密和会话管理功能,帮助开发者快速构建安全的应用程序。下面是 Shiro 框架的基本使用和概念。 身份验证 身份验证是 Shiro 框架的核心功能之一。它提供了多种身份验证机制,包括...
Apache Shiro是一款轻量级的安全框架,提供身份验证、授权、会话管理和加密等核心安全功能,而Spring Boot则简化了Java应用的开发过程,两者结合可以快速构建高效且易于维护的权限控制系统。 首先,我们需要搭建一...
5. **Shiro标签库**:在视图层,可以使用Shiro提供的JSP标签进行权限控制,例如`<shiro:hasRole>`和`<shiro:notHasRole>`。 6. **事件监听**:通过实现Shiro的事件监听器,可以在用户登录、登出等特定事件时执行...
Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、加密和会话管理功能,使得开发者能够轻松处理应用程序的安全需求。"shiro-shiro-root-1.5.3.zip"是一个包含Apache Shiro 1.5.3版本所有依赖JAR包的...
4. **拦截器配置**:使用SpringBoot的WebMvcConfigurer接口,定义Shiro的拦截器路径,实现权限控制。 5. **启动Shiro**:在SpringBoot的主配置类中,初始化SecurityManager并启动Shiro。 6. **编写认证和授权逻辑*...
《基于SpringBoot、Shiro与Vue的权限管理系统详解》 在现代企业级应用开发中,权限管理是一个不可或缺的重要环节。本教程将详细讲解如何利用SpringBoot、Shiro和Vue.js这三个技术栈构建一个完整的权限管理系统。...
3. **Freemarker 配置**:在Freemarker配置中,添加Shiro标签库的路径,使得模板引擎能够识别并解析Shiro标签。 4. **使用示例**: ```html <#if shiro.hasPermission('edit:user')}> 编辑用户 ``` **权限...
2. **授权**:Shiro提供角色和权限管理,可以控制用户对系统资源的访问权限,比如只允许管理员查看库存报告。 3. **会话管理**:Shiro可以统一管理用户的会话,包括会话超时、会话同步等,防止会话固定攻击。 4. **...
shiro.xml : shiro的主要配置... 规则定义在以下地方 : <!-- 过滤链定义 --> <property name="filterChainDefinitions"> <value> /login.jsp* = anon /index.jsp* = authc /index.do* = authc /admin...
Apache Shiro是一个强大且易用的Java安全框架,处理认证、授权、加密和会话管理,与Spring等其他框架集成良好。 **四、集成Shiro** 1. 添加依赖:在`pom.xml`中添加Shiro依赖: ```xml <groupId>org.apache.shiro...
通过对Shiro权限管理的学习,我们不仅了解了其基本原理,还掌握了如何在实际项目中运用这些原理来实现用户认证和授权。Shiro作为一个强大而灵活的安全框架,可以帮助开发者轻松构建安全可靠的Web应用。无论是初学者...
首先我们还记得在web.xml中配置的那个filter吧,名字shiroFilter,对spring-shiro.xml配置文件就是通过这个filter展开的。首先我们在web.xml配置的过滤器实际上是配置ShiroFilterFactoryBean,所以在这里需要将...