下面是配置文件 acegi.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- ======================== 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,authenticationProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor,logoutFilter,rememberMeProcessingFilter
</value>
</property>
</bean>
<bean id="httpSessionContextIntegrationFilter"
class="org.acegisecurity.context.HttpSessionContextIntegrationFilter" />
<!-- ======================== AUTHENTICATION ======================= -->
<bean id="authenticationManager"
class="org.acegisecurity.providers.ProviderManager">
<property name="providers">
<list>
<ref local="daoAuthenticationProvider"/>
<ref local="rememberMeAuthenticationProvider"/>
</list>
</property>
</bean>
<bean id="authenticationProcessingFilter"
class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="authenticationFailureUrl" value="/login.jsp"/>
<property name="defaultTargetUrl" value="/index.jsp"/>
<property name="filterProcessesUrl" value="/user.do"/>
</bean>
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="jdbcDaoImpl"/>
</bean>
<bean id="jdbcDaoImpl" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource" ref="dataSource"/>
<property name="usersByUsernameQuery">
<value>
SELECT USERNAME,PASSWORD,1 FROM T_USER WHERE USERNAME=?
</value>
</property>
<property name="authoritiesByUsernameQuery">
<value>
SELECT U.USERNAME,R.USERNAME FROM T_USER U,T_ROLE R
WHERE R.USERNAME=U.USERNAME AND U.USERNAME=?
</value>
</property>
</bean>
<bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">
<property name="authenticationEntryPoint">
<bean class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/login.jsp"/>
<property name="forceHttps" value="false"/>
</bean>
</property>
<property name="accessDeniedHandler">
<bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
<property name="errorPage" value="/error.jsp"/>
</bean>
</property>
</bean>
<bean id="filterSecurityInterceptor"
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_SUPERVISOR,ROLE_USER
/index.jsp=ROLE_USER
</value>
</property>
</bean>
<bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">
<property name="allowIfAllAbstainDecisions" value="false" />
<property name="decisionVoters">
<list>
<bean class="org.acegisecurity.vote.RoleVoter" />
</list>
</property>
</bean>
<bean id="logoutFilter" class="org.acegisecurity.ui.logout.LogoutFilter">
<constructor-arg value="/login.jsp"/>
<constructor-arg>
<list>
<bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler"/>
</list>
</constructor-arg>
</bean>
<bean id="rememberMeProcessingFilter"
class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="rememberMeServices" ref="rememberMeServices"/>
</bean>
<bean id="rememberMeServices"
class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices">
<property name="userDetailsService" ref="jdbcDaoImpl"/>
<property name="key" value="javauser"/>
</bean>
<bean id="rememberMeAuthenticationProvider"
class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
<property name="key" value="javauser"/>
</bean>
</beans>
<!-- DBCP数据库连接-->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" autowire="no">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@192.168.1.13:1521:centora" />
<property name="username" value="jlwr2" />
<property name="password" value="jlwr2" />
<property name="maxActive" value="10" />
<property name="maxIdle" value="30" />
<property name="maxWait" value="1000" />
<property name="defaultAutoCommit" value="true" />
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="60" />
</bean>
<bean name="/user"
class="com.test.web.Useraction">
</bean>
请各位帮我看看那
分享到:
相关推荐
1. **匿名登录**:Acegi允许用户在不提供详细认证信息的情况下访问特定资源。这通常用于提供公共信息或服务,如网站的首页。通过配置Acegi,可以定义哪些URL允许匿名访问,哪些需要身份验证。 2. **Session管理**:...
通过使用Acegi或Spring Security,开发者可以轻松地实现如登录、权限控制、访问限制等功能,确保应用程序的安全性。 首先,我们需要了解Spring Security的基本概念。这个框架的核心组件包括Authentication(认证)...
描述:Acegi是官方学习文档,提供全面的Acegi安全系统指南,当官方网络缓慢或无法访问时,这份文档成为学习和理解Acegi的关键资源。 Acegi安全系统是一款专为Spring框架设计的安全管理工具,旨在为Java应用提供强大...
本文将深入探讨Acegi Security中的"rememberMe"功能以及匿名登录的实现机制。 "Remember Me"功能在许多Web应用中非常常见,它允许用户在登录后选择“记住我”,以便在未来的会话中自动登录,而无需每次都输入用户名...
如果没有这个过滤器,Acegi的安全上下文将在每个请求之间丢失,导致用户体验下降,同时也可能引发安全问题,因为系统无法识别已经登录的用户。 总结来说,Acegi权限控制提供了丰富的功能,包括事件监听机制来处理...
描述中提到的博客链接虽然无法直接访问,但通常会包含具体的示例代码和解释,帮助读者理解如何配置Acegi Security以及如何在实际项目中使用。这种类型的博客可能会介绍如何创建自定义的认证和授权逻辑,或者如何集成...
AuthenticationProcessingFilter是Acegi(Spring Security)中的一个重要组件,主要负责处理用户的登录请求。在Web应用程序中,当用户尝试登录时,这个过滤器会捕获登录表单的提交,并对用户提供给系统的凭据进行...
这个步骤确保即使用户的账户状态正常,但若凭证过期,他们仍然无法登录。 这个流程展示了Spring Acegi(现在已被Spring Security替代)如何执行认证的几个关键步骤:从数据库获取用户信息、检查账户状态、验证凭证...
Session方式在多个浏览器间无法实现SSO,但可以跨域,而Cookie方式要求域名相同,但能实现真正的单点登录。大多数SSO产品采用Cookie机制。 此外,SSO还涉及到其他协议和技术,如: - LDAP(Lightweight Directory ...
- **防止Session Fixation攻击**:通过在用户登录后重新生成Session ID来防止此类攻击,确保即使Session被恶意复制,攻击者也无法继续使用。 ### 方法安全控制 Spring Security不仅限于Web层的安全控制,还提供了...
配合Spring Security,Struts2可以实现页面级别的权限控制,如未登录用户无法访问某些页面。 在ssh管理系统中,我们可以预见到以下几个关键组件和功能: 1. 用户管理:包括用户注册、登录、注销等功能,通常会与...
最近在使用roller4.0和cas的单点登录集成.中间碰到了很多很多的问题.也许我碰到的问题都是属于自己的技术不成熟,能力不够引起的.但是我想应该还是有很多人和我是差不多的吧.我把自己碰到的问题和解决方案写出来和...
在SSH框架中,可以利用Struts的拦截器实现登录检查,Spring的安全组件(如Spring Security,前身是Acegi)可以用来处理用户认证和授权,提供强大的安全防护。 6. 配置文件模板:SSH框架中的配置文件包括Struts的...
ThinkPHP框架通过借鉴Spring的Acegi安全系统,并加以简化调整,构建了一个多层且可定制的安全体系,以确保应用的安全性。 - **安全拦截器**:相当于系统中的门卫,用于在不同安全级别之间进行拦截和控制。 - **认证...