`

shiroFilter进入各Filter 简单描述

    博客分类:
  • j2ee
阅读更多
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中的地址、映射 的存储结构。
 
分享到:
评论

相关推荐

    shiroFilter权限验证

    首先我们还记得在web.xml中配置的那个filter吧,名字shiroFilter,对spring-shiro.xml配置文件就是通过这个filter展开的。首先我们在web.xml配置的过滤器实际上是配置ShiroFilterFactoryBean,所以在这里需要将...

    简单配置 shiro + spring +springMVC+hibernate简单框架

    -- shiro简单配置 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt; &lt;artifactId&gt;shiro-core&lt;/artifactId&gt; &lt;version&gt;1.2.0&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shiro...

    shiro spring简单应用

    &lt;bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"&gt; /login = anon &lt;!-- 允许匿名访问登录页面 --&gt; /logout = logout &lt;!-- 登出操作 --&gt; /** = authc &lt;!-- 需要用户认证...

    Shiro_Demo 一个简单的Shiro验证框架实例

    在这个名为"Shiro_Demo"的简单示例中,我们将深入理解如何将Shiro与Spring和SpringMVC集成,以构建一个完整的身份验证系统。 **1. Shiro框架介绍** Apache Shiro是一个轻量级的安全框架,它不依赖于任何特定的应用...

    shiro使用简单Demo

    在这个"shiro使用简单Demo"中,我们可以看到作者提供了一个基础的Shiro实现,特别针对URL和注解的权限管理进行演示,这对于初学者来说是一个很好的起点。 首先,我们来看`shiro2.xml`,这是Shiro的配置文件。在该...

    shiro最简单整合版本

    在本文中,我们将深入探讨 Apache Shiro 的核心概念及其最简单的整合方式。 一、Shiro 的核心组件 1. 身份认证(Authentication):这是验证用户身份的过程,通常涉及用户名和密码的输入。Shiro 提供了 Realm 接口...

    SpringBoot + Shiro,单WEB项目的简单权限案例

    本文将详细讲解如何结合SpringBoot与Shiro实现一个简单的权限管理案例。 首先,SpringBoot是由Pivotal团队维护的开源框架,它是基于Spring框架的简化版,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量的...

    shiro与spring web 项目集成.pdf

    此配置使得DelegatingFilterProxy负责管理ShiroFilter的生命周期,并将所有Web请求通过ShiroFilter进行过滤处理。 ### 2. 配置Shiro环境 Shiro的环境配置主要包括认证提交地址、未授权访问地址和成功访问地址等。...

    SSM+shiro登录控制

    最后,值得注意的是,由于描述中提到去除了Shiro的权限控制功能,这可能意味着项目中只需要基本的登录验证,而不涉及复杂的权限分配和角色管理。在这种情况下,Shiro的核心功能仍然可以满足需求,但可能会简化一些...

    jfinal+shiro简单的整合

    《JFinal与Shiro的简单整合详解》 在Web开发领域,JFinal和Apache Shiro是两个备受开发者青睐的工具。JFinal是一个基于Java的轻量级MVC框架,以其简洁、高效的特性受到广泛欢迎。而Apache Shiro则是一个强大且易用...

    Spring框架中整合Shiro

    &lt;bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"&gt; &lt;!-- 配置过滤器链 --&gt; /login = authc /logout = logout /** = anon ``` 在Web层,我们可以使用Shiro提供的...

    shiro 配置文件

    Shiro 的 Web 支持通常通过 Filter 方式进行,主要涉及两个 Filter:`ShiroFilter` 和 `DelegatingFilterProxy`。`ShiroFilter` 是 Shiro 提供的核心过滤器,负责拦截请求并执行相应的安全逻辑。而 `...

    一个Shiro的简单例子1

    在这个简单的例子中,我们将看到如何在 Web 应用程序中集成 Shiro,实现基本的安全管理功能。 首先,为了使用 Shiro,我们需要在项目的 `pom.xml` 文件中添加依赖。在提供的部分中,我们看到了以下依赖: ```xml ...

    Shiro应用实例1

    在这个名为"Shiro应用实例1"的示例中,我们将探讨如何在不涉及任何特定安全控制的情况下,将Shiro集成到一个简单的Web应用中。 首先,我们需要理解Shiro的基本概念: 1. **身份验证(Authentication)**:这是确认...

    shiro+springmvc整合

    3. **创建Shiro Filter**:在Spring MVC的配置文件中,配置Shiro Filter,将它添加到过滤链中。例如,定义`filterChainDefinitionMap`,指定哪些URL需要经过哪些过滤器。 ```xml &lt;bean id="shiroFilter" class="org...

    Shiro权限框架文档

    Shiro是一个易于使用且强大的权限框架,它既可以用于简单的认证,也可以用于复杂的多层次应用程序。Shiro通常与Spring框架一起使用,以便在Web应用、企业应用和微服务中实施安全机制。 描述中并未提供具体信息,...

    shiro动态URL权限控制

    &lt;filter-class&gt;org.apache.shiro.web.servlet.ShiroFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;shiroFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/* &lt;dispatcher&gt;REQUEST &lt;dispatcher&gt;FORWARD ...

    shiro认证.docx

    Apache Shiro 是一个强大且易用的Java安全框架,它提供了认证、授权、会话管理和加密等功能,用于构建简单且健壮的应用安全控制层。Shiro 的认证部分是其核心功能之一,允许系统确认用户的身份。下面我们将详细讲解...

    shiroweb案例

    - **配置 Shiro Filter**:在 `web.xml` 文件中配置 Shiro 的 `Filter`,如 `shiroFilter`,定义过滤规则,指定哪些请求需要进行安全控制。 - **创建 Realm**: Realm 是 Shiro 与应用程序安全数据源的桥梁,你需要...

    springMVC整合shiro框架

    - 代码简洁:Shiro 的 API 简单易用,与 SpringMVC 结合后,可以在 Spring 容器中管理 Shiro 组件,降低复杂度。 - 灵活性高:Shiro 支持多种认证和授权策略,可以根据项目需求进行定制。 - 低侵入性:Shiro 不...

Global site tag (gtag.js) - Google Analytics