jackrabbit security主要用来验证登录用户的合法性,并针对相关内容节点来对用户进行维权操作
security信息配置在repository.xml文件当中,通过<security>标签来进行指定
一、SecurityManager:对Repository实例进行安全管理
xml描述:<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
其class属性所对应的java类一定要实现JackrabbitSecurityManager接口,该接口对外声明了以下几个方法:
getAccessManager():返回AccessManager用于权限管理;
getPrincipalManager():返回PrincipalManager用于principal的查询操作;
getUserManager():返回UserManager用于用户信息的管理;
getUserId():返回当前登录用户的userId。
Jackrabbit Security API提供了3个类实现了该接口,分别是:
SimpleSecurityManager:只是简单实现了接口定义,无法通过它获取UserManager来对用户信息进行管理,因此,在使用该类的情况下,用户信息一般存储于其他物理媒介当中(数据库),而不是Jackrabbit里;
DefaultSecurityManager:将用户信息存储到统一的workspace当中以达到所有workspace共享;
UserPerWorkspaceSecurityManager:将用户信息存储到自己单独的workspace当中,其他的workspace不能共享。
UserManager的配置通过<SecurityManager>的子标签<UserManager>来完成
<!ELEMENT SecurityManager (WorkspaceAccessManager?,UserManager?,UserIdClass?, param*)>针对不同的SecurityManager(DefaultSecurityManager | UserPerWorkspaceSecurityManager),jackrabbit声明了两种类型的UserManager实现,分别是UserManagerImpl和UserPerWorkspaceUserManager,用于满足不同情况下的用户管理需求。基本配置信息如下(针对jackrabbit2.*版本):
security信息配置在repository.xml文件当中,通过<security>标签来进行指定
<!ELEMENT Security (SecurityManager?, AccessManager?, LoginModule?)>
由DTD描述可以看出,security的配置主要包含了3方面的信息内容,分别是:SecurityManager、AccessManager和LoginModule.
一、SecurityManager:对Repository实例进行安全管理
xml描述:<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
其class属性所对应的java类一定要实现JackrabbitSecurityManager接口,该接口对外声明了以下几个方法:
getAccessManager():返回AccessManager用于权限管理;
getPrincipalManager():返回PrincipalManager用于principal的查询操作;
getUserManager():返回UserManager用于用户信息的管理;
getUserId():返回当前登录用户的userId。
Jackrabbit Security API提供了3个类实现了该接口,分别是:
SimpleSecurityManager:只是简单实现了接口定义,无法通过它获取UserManager来对用户信息进行管理,因此,在使用该类的情况下,用户信息一般存储于其他物理媒介当中(数据库),而不是Jackrabbit里;
DefaultSecurityManager:将用户信息存储到统一的workspace当中以达到所有workspace共享;
UserPerWorkspaceSecurityManager:将用户信息存储到自己单独的workspace当中,其他的workspace不能共享。
UserManager的配置通过<SecurityManager>的子标签<UserManager>来完成
<!ELEMENT SecurityManager (WorkspaceAccessManager?,UserManager?,UserIdClass?, param*)>针对不同的SecurityManager(DefaultSecurityManager | UserPerWorkspaceSecurityManager),jackrabbit声明了两种类型的UserManager实现,分别是UserManagerImpl和UserPerWorkspaceUserManager,用于满足不同情况下的用户管理需求。基本配置信息如下(针对jackrabbit2.*版本):