subject.execute(new Callable() { public Object call() throws Exception { updateSessionLastAccessTime(request, response); executeChain(request, response, chain); return null; } });
{link AbstractShiroFilter # doFilterInternal}的 executeChain 是进入shiro的proxyFilter的关键。 subject.execute是同步执行的,没有启用新线程。
public FilterChain getChain(ServletRequest request, ServletResponse response, FilterChain originalChain) { FilterChainManager filterChainManager = getFilterChainManager(); if (!filterChainManager.hasChains()) { return null; } String requestURI = getPathWithinApplication(request); //the 'chain names' in this implementation are actually path patterns defined by the user. We just use them //as the chain name for the FilterChainManager's requirements for (String pathPattern : filterChainManager.getChainNames()) { // If the path does match, then pass on to the subclass implementation for specific checks: if (pathMatches(pathPattern, requestURI)) { if (log.isTraceEnabled()) { log.trace("Matched path pattern [" + pathPattern + "] for requestURI [" + requestURI + "]. " + "Utilizing corresponding filter chain..."); } return filterChainManager.proxy(originalChain, pathPattern); } } return null; }上面代码是在PathMatchingFilterChainResolver 中,FilterChainManager 是 已经处理shiro.ini 的 [urls]块成Map<String, Filter>,Map中的地址、映射 的存储结构。
相关推荐
首先我们还记得在web.xml中配置的那个filter吧,名字shiroFilter,对spring-shiro.xml配置文件就是通过这个filter展开的。首先我们在web.xml配置的过滤器实际上是配置ShiroFilterFactoryBean,所以在这里需要将...
-- shiro简单配置 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>org.apache.shiro...
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> /login = anon <!-- 允许匿名访问登录页面 --> /logout = logout <!-- 登出操作 --> /** = authc <!-- 需要用户认证...
在这个名为"Shiro_Demo"的简单示例中,我们将深入理解如何将Shiro与Spring和SpringMVC集成,以构建一个完整的身份验证系统。 **1. Shiro框架介绍** Apache Shiro是一个轻量级的安全框架,它不依赖于任何特定的应用...
在这个"shiro使用简单Demo"中,我们可以看到作者提供了一个基础的Shiro实现,特别针对URL和注解的权限管理进行演示,这对于初学者来说是一个很好的起点。 首先,我们来看`shiro2.xml`,这是Shiro的配置文件。在该...
在本文中,我们将深入探讨 Apache Shiro 的核心概念及其最简单的整合方式。 一、Shiro 的核心组件 1. 身份认证(Authentication):这是验证用户身份的过程,通常涉及用户名和密码的输入。Shiro 提供了 Realm 接口...
本文将详细讲解如何结合SpringBoot与Shiro实现一个简单的权限管理案例。 首先,SpringBoot是由Pivotal团队维护的开源框架,它是基于Spring框架的简化版,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量的...
此配置使得DelegatingFilterProxy负责管理ShiroFilter的生命周期,并将所有Web请求通过ShiroFilter进行过滤处理。 ### 2. 配置Shiro环境 Shiro的环境配置主要包括认证提交地址、未授权访问地址和成功访问地址等。...
最后,值得注意的是,由于描述中提到去除了Shiro的权限控制功能,这可能意味着项目中只需要基本的登录验证,而不涉及复杂的权限分配和角色管理。在这种情况下,Shiro的核心功能仍然可以满足需求,但可能会简化一些...
《JFinal与Shiro的简单整合详解》 在Web开发领域,JFinal和Apache Shiro是两个备受开发者青睐的工具。JFinal是一个基于Java的轻量级MVC框架,以其简洁、高效的特性受到广泛欢迎。而Apache Shiro则是一个强大且易用...
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <!-- 配置过滤器链 --> /login = authc /logout = logout /** = anon ``` 在Web层,我们可以使用Shiro提供的...
Shiro 的 Web 支持通常通过 Filter 方式进行,主要涉及两个 Filter:`ShiroFilter` 和 `DelegatingFilterProxy`。`ShiroFilter` 是 Shiro 提供的核心过滤器,负责拦截请求并执行相应的安全逻辑。而 `...
在这个简单的例子中,我们将看到如何在 Web 应用程序中集成 Shiro,实现基本的安全管理功能。 首先,为了使用 Shiro,我们需要在项目的 `pom.xml` 文件中添加依赖。在提供的部分中,我们看到了以下依赖: ```xml ...
在这个名为"Shiro应用实例1"的示例中,我们将探讨如何在不涉及任何特定安全控制的情况下,将Shiro集成到一个简单的Web应用中。 首先,我们需要理解Shiro的基本概念: 1. **身份验证(Authentication)**:这是确认...
3. **创建Shiro Filter**:在Spring MVC的配置文件中,配置Shiro Filter,将它添加到过滤链中。例如,定义`filterChainDefinitionMap`,指定哪些URL需要经过哪些过滤器。 ```xml <bean id="shiroFilter" class="org...
Shiro是一个易于使用且强大的权限框架,它既可以用于简单的认证,也可以用于复杂的多层次应用程序。Shiro通常与Spring框架一起使用,以便在Web应用、企业应用和微服务中实施安全机制。 描述中并未提供具体信息,...
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> </filter> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/* <dispatcher>REQUEST <dispatcher>FORWARD ...
Apache Shiro 是一个强大且易用的Java安全框架,它提供了认证、授权、会话管理和加密等功能,用于构建简单且健壮的应用安全控制层。Shiro 的认证部分是其核心功能之一,允许系统确认用户的身份。下面我们将详细讲解...
- **配置 Shiro Filter**:在 `web.xml` 文件中配置 Shiro 的 `Filter`,如 `shiroFilter`,定义过滤规则,指定哪些请求需要进行安全控制。 - **创建 Realm**: Realm 是 Shiro 与应用程序安全数据源的桥梁,你需要...
- 代码简洁:Shiro 的 API 简单易用,与 SpringMVC 结合后,可以在 Spring 容器中管理 Shiro 组件,降低复杂度。 - 灵活性高:Shiro 支持多种认证和授权策略,可以根据项目需求进行定制。 - 低侵入性:Shiro 不...