<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<!-- ========================= Filter Chain ============================ -->
<bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
</value>
</property>
</bean>
<!-- Access authentication object -->
<bean id="httpSessionContextIntegrationFilter"
class="org.acegisecurity.context.HttpSessionContextIntegrationFilter" />
<!-- Clear after logout -->
<bean id="logoutFilter"
class="org.acegisecurity.ui.logout.LogoutFilter">
<constructor-arg value="/logoutSuccess.jsp" /> <!-- logout success to redirecte to -->
<constructor-arg>
<list>
<bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler" />
</list>
</constructor-arg>
</bean>
<!-- Process authentication request -->
<bean id="authenticationProcessingFilter"
class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager" ref="authenticationManager" />
<property name="authenticationFailureUrl" value="/login.jsp?login_error=1" /> <!-- login failure to redirected to -->
<property name="defaultTargetUrl" value="/protected/protected1.jsp" /> <!-- login success to redirecte to -->
<property name="filterProcessesUrl" value="/j_security_check" /> <!-- login request action -->
</bean>
<!-- Decorate HttpServletRequest which container request parameters,header,Date,cookies etc. -->
<bean id="securityContextHolderAwareRequestFilter"
class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter" />
<!-- Configure anonymous user and authentication -->
<bean id="anonymousProcessingFilter"
class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
<property name="key" value="anonymous" />
<property name="userAttribute" value="anonymous,ROLE_ANONYMOUS" />
</bean>
<!-- Configure the map relation of exception & URL -->
<bean id="exceptionTranslationFilter"
class="org.acegisecurity.ui.ExceptionTranslationFilter">
<property name="authenticationEntryPoint">
<bean
class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/login.jsp" />
</bean>
</property>
<property name="accessDeniedHandler">
<bean
class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
<property name="errorPage" value="/accessDenied.jsp" />
</bean>
</property>
</bean>
<!-- Configure the map relation of the URL & Role -->
<bean id="filterInvocationInterceptor"
class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager" />
<property name="accessDecisionManager" ref="accessDecisionManager" />
<property name="objectDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/protected/**=ROLE_HEAD_OF_ENGINEERING
/**=IS_AUTHENTICATED_ANONYMOUSLY
</value>
</property>
</bean>
<!-- Authentication manager -->
<bean id="authenticationManager"
class="org.acegisecurity.providers.ProviderManager">
<property name="providers">
<list>
<ref local="daoAuthenticationProvider" />
</list>
</property>
</bean>
<!-- Access decision vote manager -->
<bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">
<property name="allowIfAllAbstainDecisions"
value="false" />
<property name="decisionVoters">
<list>
<bean class="org.acegisecurity.vote.RoleVoter" />
<bean class="org.acegisecurity.vote.AuthenticatedVoter" />
</list>
</property>
</bean>
<!-- DAO authentication provider which get the user's information from database -->
<bean id="daoAuthenticationProvider"
class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService" />
<!--property name="userDetailsService" ref="tuserDao" /-->
<!-- UserCache property will activate the cache, it is not
mandatory but increases performance by cacheing the user
details retrieved from user-base -->
<property name="userCache" ref="userCache"/>
</bean>
<!-- Access user's username and password -->
<bean id="userDetailsService" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
<property name="userProperties">
<bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="/WEB-INF/users.properties" />
</bean>
</property>
</bean>
<!-- Cache user's information -->
<bean id="userCache" class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
<property name="cache">
<bean
class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<bean
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" />
</property>
<property name="cacheName" value="userCache" />
</bean>
</property>
</bean>
<!-- This bean is optional; it isn't used by any other bean as it only listens and logs -->
<bean id="loggerListener" class="org.acegisecurity.event.authentication.LoggerListener" />
</beans>
其中,users.properties中的内容为
alice=123,ROLE_HEAD_OF_ENGINEERING
如果用数据库中的用户登陆可以选择
<property name="userDetailsService" ref="tuserDao" />
分享到:
相关推荐
spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,...
在本实例中,我们将深入探讨如何使用Acegi进行权限管理,以及如何通过一个简单的项目来学习Acegi的核心功能。 首先,Acegi提供了一种灵活的方式来定义用户角色和权限,允许我们基于角色的访问控制(RBAC)。在这个...
本实例提供的内容是关于Acegi Security的全面应用,涵盖了多个关键的安全功能。 1. **匿名登录**:Acegi允许用户在不提供详细认证信息的情况下访问特定资源。这通常用于提供公共信息或服务,如网站的首页。通过配置...
Acegi安全框架是一款基于Spring AOP(面向切面编程)的高级安全认证和授权框架,它为Java应用程序提供了全面的安全管理解决方案。Acegi的核心功能包括用户身份验证、访问控制、会话管理以及密码加密等,使得开发者...
标题和描述均提到了“Acegi Security整合CAS实例”,这涉及到Spring Framework下的Acegi Security模块与CAS(Central Authentication Service)的集成。Acegi Security是Spring框架的一个子项目,旨在为应用提供安全...
Acegi是Spring框架早期的一个安全模块,主要用于身份验证和授权管理。在2009年,Acegi被Spring Security所吸收,成为其前身,因此理解Acegi有助于我们深入理解Spring Security的安全机制。以下是对Acegi的详细介绍和...
在本实例中,我们将深入探讨如何使用Acegi来控制用户的权限。Acegi Security已经被Spring Security替代,但其核心思想和机制仍然适用于现代的Spring Security。 首先,我们需要理解Acegi的基础概念。Acegi的核心是`...
在实际应用中,这个简单的Acegi实例可能包含以下步骤: 1. 创建Spring配置文件,引入Acegi相关的bean定义,如`FilterSecurityInterceptor`、`AuthenticationProvider`等。 2. 配置URL安全规则,如哪些URL需要身份...
<!!-- web.xml文件 --> <?xml version="1.0" encoding="UTF-8"?> ...<param-value>/WEB-INF/acegi-config.xml</param-value> </context-param> <!-- Acegi 的 Filter Chain 代理 --> <filter> <filter-name>
在本实例中,我们将探讨Acegi Security的配置、详细设置以及如何通过代码实现其功能。 首先,让我们理解Acegi Security的核心概念。该框架提供了一种基于角色的访问控制(RBAC)机制,允许开发人员定义用户权限并...
Acegi 是一个基于 Spring 的安全框架,用于提供企业级的身份验证和授权服务。在 Java 应用开发中,Acegi 提供了一套强大的工具来管理用户权限和访问控制,使得开发者能够更专注于业务逻辑,而不是安全性问题。在这个...
在这个"acegi实例"中,我们将探讨Acegi如何实现权限分配,以及它在实际应用中的工作流程。 Acegi提供了一个全面的权限管理和认证框架,允许开发者在Spring应用中实现复杂的安全需求。它通过定义访问控制规则,如...
Acegi是Spring Security的前身,它是一个用于Java平台的安全框架,专为Web应用程序提供认证和授权功能。在本文中,我们将深入探讨Acegi开发实例,理解其核心概念,并通过具体的例子来学习如何在项目中应用它。 首先...
在这个" Acegi-security-samples-tutorial-1.0.7.zip "压缩包中,包含了一个详细的教程实例,帮助开发者理解并掌握Acegi Security的使用方法。通过将这些示例代码导入到自己的项目并添加注释,我们可以更深入地学习...
Acegi 是一个强大的 Java 安全框架,专用于系统安全编程,尤其在处理认证和授权方面表现出色。在本文中,我们将深入探讨 Acegi 的基本概念、如何设置以及它如何与 Spring 框架集成。 首先,让我们了解 Acegi 的核心...
在描述中提到的"spring + acegi + ldap 权限框架",意味着这个实例展示了如何配置和使用这三者来构建一个完整的权限管理系统。Spring负责处理业务逻辑和依赖注入,Acegi则负责安全管理,包括用户认证和授权,而LDAP...
Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...