`
raymond.chen
  • 浏览: 1426061 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于web应用的Shiro入口介绍

    博客分类:
  • Java
 
阅读更多

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。

 

Shiro的入口其实是一个Filter,这个Filter在spring中配置并受到spring容器的管理,既然受spring管理,那它就可以引用spring中的其他bean对象了。Shiro Filter通过DelegatingFilterProxy类对其进行代理。

 

 

以下是关于DelegatingFilterProxy的详细介绍:

    使用DelegatingFilterProxy可以将其所代理的filter作为spring容器的bean,使filter受到spring的管理,这样filter就可以引用spring里定义的其他bean了。

    DelegatingFilterProxy作为标准的Servlet2.3 Filter的代理,但是Filter的实际工作是通过将任务委派给spring管理的而且实现了Filter接口的bean来完成的。

    web.xml通常会包括DelegatingFilterProxy的定义,其中的filter-name项会对应spring容器中的一个bean的名字(也可以使用targetBeanName属性进行指定)。所有的调用请求都会首先发送到这个filter代理中去,然后再委派到spring容器中的这个bean,当然,这个bean必须要实现标准的Servlet 2.3 Filter 接口。

 

Shiro在web.xml和spring中的配置如下:

 

在web.xml中的配置:

<filter>
	<filter-name>shiroFilter</filter-name>
	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	<init-param>
		<param-name>targetFilterLifecycle</param-name>
		<param-value>true</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>shiroFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

 

在spring中的配置:

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
	<property name="securityManager" ref="securityManager" />
	<property name="loginUrl" value="/login.action" />
	<property name="successUrl" value="/index.jsp" />
	<property name="filters">
		<map>
			 <entry key="authc" value-ref="formAuthenticationFilter"/>
			 <entry key="resourceAuth" value-ref="resourceAuthenticationFilter"/>
		</map>
	</property>
	<property name="filterChainDefinitions">
		<value>
			/login.action = authc
			/logout.action = logout
			/common/** = anon
			/** = user,resourceAuth
		</value>
	</property>
</bean>

 

    Servlet Filter 接口中定义的生命周期函数(init和destroy等)默认不会被target bean自己执行,而是由spring容器执行来管理这个bean的生命周期。如果将名为"targetFilterLifecycle"的filter init-param参数设定为"true",则target bean的Filter.init和Filter.destroy的生命周期函数的调用就可以由servlet container来执行了。

 

分享到:
评论

相关推荐

    shiro登录/退出demo(web应用)

    同时,还需要在Web应用的入口点或者Servlet中初始化Shiro的SecurityManager。 总结来说,这个"shiro登录/退出demo(web应用)"项目提供了一个实践Shiro安全框架的实例,涵盖了从用户登录到权限控制的全过程。通过学习...

    shiro管理多登录入口配置,手机端登录与网页端登录

    总的来说,实现"shiro管理多登录入口配置,手机端登录与网页端登录"需要对 Shiro 的 Realm、过滤器和配置有深入理解,以及根据应用场景定制相应的登录验证流程。正确配置后,Shiro 可以有效地管理和保护不同入口的...

    Shiro+SpringMVC 示例

    Apache Shiro 和 SpringMVC 的整合示例是一个用于构建安全Web应用的常见实践。这个示例项目不依赖于任何数据库,所有的实现都是基于静态代码,这使得它成为一个快速理解和学习Shiro安全框架的理想起点。 Apache ...

    shiro_springmvc_demo

    本项目"shiro_springmvc_demo"显然是一个基于Shiro和SpringMVC的实战示例,旨在帮助开发者理解如何将Shiro集成到SpringMVC应用中,实现用户认证和授权。 在SpringMVC框架中,Shiro可以帮助我们处理用户登录、权限...

    shiro+springmvc权限管理

    4. **Web集成**:Shiro可以轻松地与SpringMVC集成,通过Filter配置实现URL级别的访问控制,为Web应用提供安全入口。 **SpringMVC与Shiro的整合** 1. **配置Shiro Filter**:在SpringMVC的web.xml中配置Shiro的...

    shiro相关资料

    通过配置 web.xml 或 Spring MVC,可以将Shiro整合到Web应用中。 7. **测试支持**:Shiro 提供了测试类,方便在单元测试中模拟 Subject 和 Realm,确保安全逻辑的正确性。 8. **生命周期管理**:Shiro 提供了对...

    springboot+shiro

    2. **MySQL**:这是一个开源的关系型数据库管理系统,常用于存储Web应用的数据。 3. **MyBatis**:这是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置...

    shiro+springmvc整合demo

    Apache Shiro 和 SpringMVC 的整合是Web应用中常见的安全框架组合,主要用于实现用户认证、授权和会话管理。在本示例中,"shiro+springmvc整合demo" 提供了一个基于SpringMVC和Apache Shiro的完整演示,同时结合了...

    安全框架shiro 中文教程

    记得配置你的应用程序入口,确保Shiro能够拦截并处理请求。 通过阅读《shiro中文官方文档.pdf》,你可以更详细地了解Shiro的每个组件和使用示例,包括配置文件的编写、安全控制的实现以及各种自定义扩展。这份教程...

    SpringBoot+Shiro+Jpa+Redis.zip

    在现代Web应用开发中,权限管理是一个至关重要的环节。本项目通过整合SpringBoot、Shiro、Jpa以及Redis,构建了一个功能完善的权限管理系统。接下来,我们将详细探讨这四个组件以及它们在系统中的作用。 首先,...

    spring-boot+shiro+jpa

    在IT领域,Spring Boot、JPA(Java Persistence API)和Shiro都是常见的技术框架,用于构建高效、便捷的Web应用程序。下面将详细解释这三个技术及其在"spring-boot+shiro+jpa"项目中的应用。 首先,Spring Boot是...

    struts2与shiro集成(实例)

    将两者集成可以实现高效且安全的Web应用。 **Struts2框架详解** Struts2是基于拦截器的MVC框架,它提供了强大的动作调度、结果映射和插件扩展机制。通过Action类,开发者可以定义业务操作,并通过配置文件或注解来...

    SpringBoot+shiro+redis+jwt .zip

    在现代Web应用开发中,安全性是至关重要的一个环节。`SpringBoot`因其便捷的集成性和强大的功能,成为了Java开发者首选的框架。而`Shiro`则是一个轻量级的安全管理框架,提供了用户认证、授权、会话管理和加密等功能...

    security-springMVC-shiro.rar

    将Spring MVC与Shiro结合使用,可以构建出高效且安全的Web应用。本文将深入探讨如何在Spring MVC项目中集成Shiro,以及它们之间的协同工作原理。 首先,我们来看Shiro的核心概念。Shiro主要包括三个核心组件:...

    shiro入门教程

    1. **创建Maven项目**:首先,我们需要创建一个基于Maven的Java Web项目,将Shiro的依赖添加到`pom.xml`文件中。Shiro的核心库依赖如下: ```xml &lt;groupId&gt;org.apache.shiro &lt;artifactId&gt;shiro-core ...

    apache shiro使用

    4. **编写过滤器链**:Shiro 提供了 Filter 来实现Web应用的访问控制。在 `web.xml` 中配置 Shiro 过滤器链,例如 `authc`(认证过滤器)和 `perms`(权限过滤器)。 5. **使用 API**:在你的业务代码中,可以方便...

    SpringMVC+mybatis+shiro

    **EasyUI** 是一个基于jQuery的前端UI框架,提供了丰富的组件,如表格、表单、树形菜单等,用于快速构建企业级Web应用的用户界面。EasyUI与SpringMVC结合,能够方便地实现前后端数据交互,提供良好的用户体验。 综...

    Apache_Shiro

    它不仅适用于传统的Web应用,还能很好地适应现代的分布式系统环境。 《Apache Shiro 开发文档》和《深入浅出学Shiro》这两份PDF文档将为你提供全面的Shiro学习资源,帮助你理解和掌握这个框架的核心功能和最佳实践...

    spring3MVC+hibernate4+shiro整合

    在IT领域,Spring MVC、Hibernate和Shiro是三个非常重要的框架,它们分别在Web应用的MVC模式实现、对象关系映射(ORM)以及安全控制方面发挥着关键作用。接下来,我们将深入探讨这三个框架的核心概念及其整合过程。 ...

    shiro注册练习,登录还没写,不过验证已经写完了,入门可以参考

    除此之外,Shiro 还提供了 Web 支持,可以方便地集成到 Spring Boot 或其他 Web 应用中。在实际项目中,你可能需要创建过滤器链,设置安全拦截规则,以保护应用程序的入口点。 文件 "jxssm" 可能包含了该项目的源...

Global site tag (gtag.js) - Google Analytics