Spring应用安全与EJB整合
企业应用安全
企业应用通常有四个与安全相关的要求,具体如下:
| 安全要求 | 说明 |
| ---- | ---- |
| 认证(Authentication) | 确认用户身份的过程 |
| Web请求安全(Web request security) | 确保Web请求的安全性 |
| 服务层安全(Service layer security) | 保障服务层的安全访问 |
| 域对象实例安全(Domain object instance security) | 对域对象实例进行安全控制 |
实现这些安全要求有三种常见的方法:
1. Acegi Security System for Spring
2. JAAS
3. Servlet Specification security
除了最简单的情况,推荐使用Acegi Security。简单情况指的是不需要任何形式的服务层或域对象实例授权,或者不需要Web容器可移植性的情况。
Acegi Security的架构重点在于认证、授权和域对象实例安全。它完全通过Spring应用上下文进行配置,在很多方面与Spring自身的事务服务类似。Acegi Security支持多种认证提供者,不仅可以在Web或方法调用前进行授权,还能抛出 AccessDeniedException
或修改方法调用返回的对象。它基于接口驱动,可通过可扩展的声明式方式实现基于角色