《Spring Security3》第七章第一部分翻译(访问控制列表ACL)
?
第七章?? 访问控制列表(ACL)
?你可以看见各种的组或用户以及权限,从而能够以可视化和很直观的方式输入ACL。
Spring Security中的访问控制列表
?让我们看是进行配置的变化!
添加ACL表到HSQL数据库中
?你能够看到SID、对象标识以及ACE的概念如何匹配到数据库模式中。概念上讲,这很方便,因为我们能够匹配ACL系统的模型并直接将其关联到数据库中。
?ACL子系统与SpringSecurity框架其它大部分功能有一个明显的不同就是大多数的配置需要构造方法注入(constructor injection),而不是属性注入(property injection)。正如我们在第六章:高级配置和扩展中明确bean配置所讨论的那样,一部分SpringSecurity在这方面并不一致,强制要求使用构造器以确保需要的属性被设置——这在配置大多数ACL相关组件时是需要注意的。
?不是明显bean引用的属性需要进行一些说明。第二个构造参数,我们给它一个值为VOTE_CATEGORY_READ,用来表明这个投票器能够投票的安全属性。你可能会记得这与我们要进行ACL保护的方法上的@Secured注解匹配。
?我们将会使用o.s.s.acls.jdbc.JdbcAclService,它是AclService的一个实现。这个实现是内置的并且使用我们这个练习上一步定义的数据库模式。JdbcAclService将会使用递归的SQL和事后处理机制来理解SID的等级关系,并确保等级关系的表述能够传递回AclEntryVoter。
?现在,BasicLookupStrategy是一个很复杂的家伙(beast)。记住,其目标是从数据库中将一系列的ObjectIdentity转换成实际可用的ACE列表。因为ObjectIdentity的声明可能是递归的,这会是一个很有挑战性的问题,并且对于高负荷使用的应用要考虑产生的SQL对数据库性能的影响。
?不要担心,我们将会在本章后面配置基于Ehcache的实现,但是现在我们首先想要关注配置ACL真正需要的组件。
???????? BasicLookupStrategy所要处理的下一个依赖是o.s.s.acls.domain.AuditLogger接口的一个现实,它被BasicLookupStrategy用来进行审计ACL和ACE的查找。类似于AclCache接口,Spring Security只提供了一个实现,它简单地在控制台上记录log。我们将用一行的bean声明来配置它:
?
?现在,我们能够启动应用并运行实例场景。你会发现不是管理员的任何用户试图访问第一个分类“Pet Apparel”,他们被拒绝访问。如果没有经过认证的用户试图访问这个分类,他们将会按照标准的AccessDeniedException处理(第六章已描述)并要求登录。
?
1 楼 decentway 2012-08-25 能力不行啊,,看不懂。。