读书人

spring security总结(二)

发布时间: 2012-08-22 09:50:35 作者: rapoo

spring security小结(二)

??? Spring security中acl的一些关键接口:

?

1、Acl: 每个领域对象有一个,并只有一个Acl对象,它的内部保存着AccessControlEntry(ace),记住这是Acl的所有者。 一个Acl不直接引用领域对象,但是作为替代的是使用一个ObjectIdentity。 这个Acl保存在ACL_OBJECT_IDENTITY表里。

?

2、AccessControlEntry:一个 Acl 里有多个AccessControlEntry,在框架里常常略写成ACE。 每个ACE引用特别的Permission,Sid和Acl。 一个ACE可以授权或不授权(granting),包含审核设置。 ACE保存在ACL_ENTRY表里。

?

3、Permission:一个 permission 表示特殊不变的位掩码,为位掩码和输出信息提供方便的功能。 上面的基本权限(位0到4)保存在BasePermission类里。

?

4、Sid:这个 ACL 模块需要引用主体(Princiapl)和GrantedAuthority[]。 间接的等级由Sid接口提供,简写成“安全标识”。 通常类包含PrincipalSid(表示主体在Authentication里)和GrantedAuthoritySid。 安全标识信息保存在ACL_SID表里。

?

5、ObjectIdentity:每个领域对象(ACL_CLASS)放在ACl模型的内部,使用ObjectIdentity。 默认实现叫做ObjectIdentityImpl。

?

6、AclService:获取给定的ObjectIdentity的适用的Acl。 内置的实现(JdbcAclService),重审操作代理LookupStrategy。 这个LookupStrategy为检索ACL信息提供高优化策略,使用批量检索(BasicLookupStrategy)然后支持自定义实现。

?

7、MutableAclService:保存修改后的Acl到持久层。如果没有需要,你可以不使用这个接口,负责创建和存储ACL实例。

读书人网 >软件架构设计

热点推荐