出自:http://java.chinaitlab.com/Spring/762022.html
在认识Spring
Security之前,所有的权限验证逻辑都混杂在业务逻辑中,用户的每个操作以前可能都需要对用户是否有进行该项操作的权限进行判断,来达到认证授权的
目的。类似这样的权限验证逻辑代码被分散在系统的许多地方,难以维护。AOP(Aspect Oriented
Programming)和Spring
Security为我们的应用程序很好的解决了此类问题,正如系统日志,事务管理等这些系统级的服务一样,我们应该将它作为系统一个单独的“切面”进行管
理,以达到业务逻辑与系统级的服务真正分离的目的,Spring Security将系统的安全
逻辑从业务中分离出来。
本文代码运行环境:
JDK6.0
spring-framework-2.5.4
spring-security-2.0.0
Java
EE5
Web容器:
Apache
Tomcat6.0
IDE工具:
Eclipse3.3+MyEclipse6.5
操作系统:
Linux(Fedora 8)
这只是我个人的学习总结而已,还请高手们指出本文的不足之处。
一 Spring Security 简介
这里提到的Spring Security也就是被大家广为熟悉的Acegi Security,2007年底Acegi
Security正式成为Spring Portfolio项目,并更名为Spring Security.Spring
Security是一个能够为基于Spring的企业应用系统提供描述性安全
访
问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring
IoC(依赖注入,也称控制反转)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的
工作。
通过在许多项目中实践应用以及社区的贡献,如今的Spring Security已经成为Spring
Framework下最成熟的安全系统,它为我们提供了强大而灵活的企业级安全服务,如:
Ø
认证授权机制
Ø
Web资源访问控制
Ø
业务方法调用访问控制
Ø
领域对象访问控制Access Control List(ACL)
Ø
单点登录(Central Authentication Service)
Ø
X509认证
Ø
信道安全(Channel Security)管理等功能
当保护Web资源时,Spring Security使用Servlet
过滤器来拦截Http请求进行身份验证并强制安全性,以确保WEB资源被安全的访问。如下图是Spring
Security的主要组件图(摘自《Spring in Action》):
图1 Spring
Security的基本组件
无论是保护WEB资源还是保护业务方法或者领域对象,Spring
Security都的通过上图中的组件来完成的。本文主要阐述如何使用Spring
Security对WEB应用程序的资源进行安全访问控制,并通过一个简单的实例来对Spring
Security提供的各种过滤器的功能和配置方法进行描述。
分享到:
相关推荐
8. **Spring Security**:基础的认证与授权知识,如何使用Spring Security保护应用程序的安全,包括登录、权限控制等方面。 9. **Spring测试**:如何编写单元测试和集成测试,利用Spring Test和Mockito等工具进行...
4. **资料**:这部分可能包括额外的阅读材料,如Spring官方文档的摘录,或者是关于特定主题的深入文章。它可以帮助学习者巩固课堂上的知识,提供更全面的理解。 学习Spring框架的第一天,通常会涵盖以下知识点: - ...
9. 内容介绍:虽然未提供具体内容的摘录,但书名和副标题表明,本书将覆盖Spring框架的广泛方面,包括其工具和库,比如Spring Boot、Spring MVC、Spring Data、Spring Security等。 10. 技术更新:第五版表明这本书...
Spring框架是Java社区中最流行的开源应用框架之一,由Rod Johnson创建,最初在2002年发布。Spring的核心特性是依赖注入...但请注意,这些信息并没有在提供的摘录中明确提及,而是基于对Spring框架通用知识的推测。
- 应用框架和库:Spring框架,SpringSecurity,JPA,Apache Camel等。 2. 微服务化过程中的问题和解决: - 线上故障:通过微服务化,能更快速地定位和处理故障。 - 研发效率:微服务化促进了团队的高效协作和...