今天看到appfuse2.0.2里acegi的配置文件非常奇怪,到appfuse官网查看原来将appfuse2.0.2包含的acegi1.0升级到了acegi2.0 ,同1.0比起变化很大,名称也改为spring security2.0.下面是简单配置使用步骤
1、第一件事是把下面的filter声明添加到 web.xml 文件中:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.配置信息都放到application-security.xml里(名称可改),要加上命名空间
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.2.xsd">
...
</beans:beans>
3、其次为路径,地址增加权限。
<intercept-url pattern="/**" access="ROLE_USER" />
这表示,我们要保护应用程序中的所有URL,只有拥有 ROLE_USER角色的用户才能访问。
例如:
<http auto-config="true" lowercase-comparisons="false">
<!--intercept-url pattern="/images/*" filters="none"/>
<intercept-url pattern="/styles/*" filters="none"/>
<intercept-url pattern="/scripts/*" filters="none"/-->
<intercept-url pattern="/admin/*" access="ROLE_ADMIN"/>
<intercept-url pattern="/passwordHint.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/>
<intercept-url pattern="/signup.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/>
<intercept-url pattern="/a4j.res/*.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/>
<!-- APF-737, OK to remove line below if you're not using JSF -->
<intercept-url pattern="/**/*.html*" access="ROLE_ADMIN,ROLE_USER"/>
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" login-processing-url="/j_security_check"/>
<remember-me user-service-ref="userDao" key="e37f4b31-0c45-11dd-bd0b-0800200c9a66"/>
</http>
4、 指定数据库 和 密码加密
<authentication-provider user-service-ref="userDao">
<password-encoder ref="passwordEncoder"/>
</authentication-provider>
5、方法授权
<global-method-security>
<protect-pointcut expression="execution(* *..service.UserManager.getUsers(..))" access="ROLE_ADMIN"/>
<protect-pointcut expression="execution(* *..service.UserManager.removeUser(..))" access="ROLE_ADMIN"/>
</global-method-security>
6、Session控制
Acegi2.0 的session 控制真是简单,只能用简单得一米来形容J
首先在web.xml 中加个Listener:
<listener>
<listener-class>
org.springframework.security.ui.session.HttpSessionEventPublisher
</listener-class>
</listener>
然后在application-security.xml 中配置规则:
<http>
<concurrent-session-control max-sessions="1" />
</http>
或
<http>
<concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true" />
</http>
解释说明:两个配置都只允许用户登录一次,exception-if-maximum-exceeded 默认为false,此值表示:
用户第二次登录时,前一次的登录信息都被清空。当exception-if-maximum-exceeded="true"时系统会拒
绝第二次登录。
分享到:
相关推荐
**Spring Security 2.0(Acegi 2.0)详解** Spring Security,原名Acegi Security,是Spring框架的一个扩展,专为Java应用程序提供全面的安全性解决方案。它提供了强大的功能,包括身份验证、授权、会话管理以及...
有兴趣的欢迎来群:41229007 共同学习
### 最新ACEGI2.0教程 #### 一、引言与基础知识 ##### 1.1 什么是Spring Security? Spring Security(曾用名Acegi Security System for Spring)为基于Spring框架构建的企业级应用提供强大而灵活的安全解决方案...
在2008年,Acegi被整合到Spring Security(原名Spring Security 2.0)中,成为其核心组件,因此现在我们更多地谈论Spring Security而不是单独的Acegi。然而,理解Acegi对于熟悉早期Spring Security系统的设计思路...
### Acegi认证服务详解 #### 一、Acegi简介与背景 Acegi是Spring Security的前身,是一款基于Spring框架的安全管理工具,旨在为应用程序提供安全控制...希望本文能够为正在学习或使用Acegi的同学提供有价值的参考。
通过这个"acegi结合ssh实用列子",你可以学习到如何将Acegi的高级安全特性与SSH框架无缝集成,从而提高应用的安全性。实践中,应根据项目需求调整配置,灵活运用Acegi的各种组件,以达到最佳的安全效果。同时,不断...
自从Spring Security(以前称为Spring-Security或Acegi Security 2.0)发布以来,它已经成为了ACEGI的继承者。Spring Security继承了ACEGI的优点,并增加了更多的特性,如支持OAuth、JWT和SAML等现代安全标准。 6....
7. **许可证信息**: “springframework-license.txt”文件通常包含了软件的许可证条款,对于Acegi Security 0.8.2来说,这可能是Apache Software License 2.0,这是一个宽松的开源许可证,允许商业和非商业用途。...
Acegi Security是一个历史悠久的安全框架,主要用于Java平台,尤其在Spring框架的...尽管Acegi Security已经被Spring Security替代,但对于理解早期Spring生态的安全实践,以及学习历史版本的代码,仍具有一定的价值。
虽然 Acegi 已经被 Spring Security(自 Spring 2.0 版本起)所取代,但 Spring Acegi 3 在当时依然是许多项目中的首选安全组件。 **身份验证** 在 Spring Acegi 3 中,身份验证过程是核心功能之一。它支持多种...
尽管Acegi已经被Spring Security(自Spring 2.0版本起)所取代,但它在许多旧项目中仍然被广泛使用,因此理解其工作原理和特性仍然是必要的。 1. **身份验证**:Acegi 提供了多种身份验证机制,包括基于密码的认证...
尽管Acegi安全框架非常强大,但请注意,自Spring Security 2.0起,Acegi已被Spring Security所取代。尽管如此,学习Acegi仍能帮助理解Spring Security的基础概念和设计模式,因为两者的核心思想是一致的。在实际开发...
10. **Spring Security**:虽然不在Spring 2.0核心框架内,但这个版本已经预示了Spring Security(以前称为Acegi Security)的发展,提供了一整套的安全认证和授权解决方案。 以上只是《Spring 2.0 技术手册》中...
- **学习曲线**:虽然Acegi Security提供了强大的功能,但其配置相对复杂,需要花费时间去理解和学习。 - **文档和社区**:由于Acegi Security已经不再维护,开发者可能需要查阅旧的文档和社区资源来解决问题。 ...
Acegi Security遵循的许可协议可能是Apache License 2.0或其他开源许可证,这允许开发人员在商业项目中自由使用、修改和分发代码,但可能需要遵守一些特定的条款,例如保留原始版权信息。 为了在项目中使用Acegi ...
总的来说,《Spring 2.0 中文用户指南》是学习和掌握Spring框架的重要参考资料,无论你是初学者还是经验丰富的开发者,都能从中获益匪浅。通过阅读这份指南,你可以深入了解Spring 2.0的各种特性和最佳实践,提升你...
对于学习Acegi Security的开发者,理解源代码中的关键类和接口,如`AbstractSecurityInterceptor`、`Authentication`、`GrantedAuthority`等,是至关重要的。同时,熟悉Spring AOP的概念和实践也有助于更好地利用...
Spring 2.0 是一个里程碑式的版本,在Java企业级应用开发领域中占据着核心地位。这个框架以其模块化、灵活性和强大的...这份文档详细阐述了Spring的各种特性和使用方法,是学习和使用Spring 2.0不可或缺的参考资料。
10. **Spring Security**:虽然不在2.0版本中,但Spring Security(之前称为Acegi Security)是一个可选的模块,提供身份验证和授权功能,保护Spring应用免受安全威胁。 总之,《Spring 2.0 中文开发参考手册》是...
- **DWR与Acegi**:解决Acegi安全框架下DWR的权限问题。 #### DWR中的JavaScript - **简单的回调函数**:介绍如何使用DWR进行异步调用,并在调用完成后执行回调函数。 - **调用元数据对象**:元数据对象包含关于...