Acegi-认证和授权,用于Spring Framework的安全框架
来源:互联网 发布:电网 数据核查治理 编辑:程序博客网 时间:2024/05/18 18:18
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。
Acegi成为Spring子项目后改名为Spring Security。查看安全权限管理手册[1]。
安全涉及到两个不同的概念,认证和授权。前者是关于确认用户是否确实是他们所宣称的身份。授权则是关于确认用户是否有允许执行一个特定的操作。
在Acegi安全系统中,需要被认证的用户,系统或代理称为"Principal"。Acegi安全系统和其他的安全系统不同,它并没有角色和用户组的概念。
Acegi系统设计
关键组件
Acegi安全系统包含以下七个关键的功能组件:
1 Authentication对象,包含了Principal,Credential和Principal的授权信息。同时还可以包含关于发起认证请求的客户的其他信息,如IP地址。
2 ContextHolder对象,使用ThreadLocal储存Authentication对象的地方。
3 AuthenticationManager,用于认证ContextHolder中的Authentication对象。
4 AccessDecissionManager,用于授权一个特定的操作。
5 RunAsManager,当执行特定的操作时,用于选择性地替换Authentication对象。
6 Secure Object拦截器,用于协调AuthenticationManager,AccessDecissionManager,RunAsManager和特定操作的执行。
7 ObjectDefinitionSource,包含了特定操作的授权定义。
这七个关键的功能组件的关系如下图所示(图中灰色部分是关键组件):
安全管理对象
Acegi安全系统目前支持两类安全管理对象。
第一类的安全管理对象管理AOP Alliance的MethodInvocation,开发人员可以用它来保护Spring容器中的业务对象。为了使Spring管理的Bean可以作为MethodInvocation来使用,Bean可以通过ProxyFactoryBean和BeanNameAutoProxyCreator来管理,就像在Spring的事务管理一样使用。
第二类是FilterInvocation。它用过滤器(Filter)来创建,并简单地包装了HTTP的ServletRequest,ServletResponse和FilterChain。FilterInvocation可以用来保护HTTP资源。通常,开发人员并不需要了解它的工作机制,因为他们只需要将Filter加入web.xml,Acegi安全系统就可以工作了。
安全配置参数
每个安全管理对象都可以描述数量不限的各种安全认证请求。例如,MethodInvocation对象可以描述带有任意参数的任意方法的调用,而FilterInvocation可以描述任意的HTTP URL。
Acegi安全系统需要记录应用于每个认证请求的安全配置参数。例如,对于BankManager.getBalance(int accountNumber)方法和BankManager.approveLoan(int applicationNumber)方法,它们需要的认证请求的安全配置很不相同。
为了保存不同的认证请求的安全配置,需要使用配置参数。从实现的视角来看,配置参数使用ConfigAttribute接口来表示。Acegi安全系统提供了ConfigAttribute接口的一个实现,SecurityConfig,它把配置参数保存为一个字符串。
ConfigAttributeDefinition类是ConfigAttribute对象的一个简单的容器,它保存了和特定请求相关的ConfigAttribute的集合。
当安全拦截器收到一个安全认证请求时,需要决定应用哪一个配置参数。换句话说,它需要找出应用于这个请求的ConfigAttributeDefinition对象。这个查找的过程是由ObjectDefinitionSource接口来处理的。这个接口的主要方法是public ConfigAttributeDefinition getAttributes(Object object),其中Object参数是一个安全管理对象。因为安全管理对象包含有认证请求的详细信息,所以ObjectDefinitionSource接口的实现类可以从中获得所需的详细信息,以查找相关的ConfigAttributeDefiniton对象。
- Acegi-认证和授权,用于Spring Framework的安全框架
- Spring Acegi框架授权的实现
- Spring框架和Acegi安全框架介绍
- Spring框架和Acegi安全框架介绍
- Spring acegi 安全框架
- 实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架
- 在项目中用Spring的Acegi安全框架的步骤
- Acegi 安全认证
- Acegi安全框架的机制和使用经验介绍
- Spring源代码解析(十):Spring Acegi框架授权的实现
- Spring源代码解析(十):Spring Acegi框架授权的实现
- 和清栏一起学习Acegi安全框架
- 使用Acegi作为基于Spring框架的WEB应用的安全框架
- Acegi安全框架在基于Spring框架的系统中的应用
- 结合JAAS实现J2EE的安全认证和授权
- Acegi是Spring Framework 下最成熟的安全系统,它提供了强大灵活的企业级安全服务
- Zend Framework 中的认证和授权浅见
- Zend Framework 中的认证和授权浅见
- Java-私塾图书进销存项目视频--(趣盘下载)
- 如何生成和使用自定义控件
- 免于被反向工程破解的程序保护系统-Themida
- HEX文件和BIN文件格式的区别
- 购物网站20:用户/顾客action----用户列表---用户退出---用户管理---用户登录---用户注册---修改密码---发送邮件
- Acegi-认证和授权,用于Spring Framework的安全框架
- 购物网站21:过滤器----购物车---用户登录---员工登录---登录验证---编码转换
- 购物网站22:FORM-BASE
- 购物网站23:FORM----订单
- 购物网站24:FORM---权限----部门---员工----权限组
- 购物网站25:FORM----产品----品牌----前台产品----后台产品----产品查询----产品类型
- javascript解析XML的方法
- 购物网站26:购物FORM---购物车----配送信息-----购物完成
- 购物网站27:FORM-上传文件