如何通过 JAVA Security API 来定性 IBM FileNet P8 内容查询和存储的安全
2009-11-05 00:00:00 来源:WEB开发网下面这段代码来进行登陆操作:
清单 1. 使用 API 来登录
LoginContext lc = newLoginContext("mysystem",
newUserPasswordHandler("username@testdom.local", "password"));
lc.login();
// 将 JAAS Subject 与 UserContext
UserContext uc = UserContext.get();
uc.pushSubject(lc.getSubject());
Login() 方法如果没有抛出异常,就表示该用户登陆成功了,即该用户通过了认证。
每个 UserContext 对象是与每个访问Content Engine Java API 的线程联系在一起的。一个 JAAS Subject 应该与这个线程是关联的,这是通过调用 UserContext.pushSubject() 方法来实现的。
注意:UserContext 类提供了一辅助方法来进行使用普通的用户名和密码的 JAAS 登陆,例如:
清单 2. 使用 JAAS 登录
// Obtain a JAAS Subject and associate it with the UserContext
UserContext uc = UserContext.get();
uc.pushSubject(
UserContext.createSubject("connection", "username", "password", "FileNetP8"));
在方法 createSubject()中,可以定义用户名和密码,以及选择连接方式,其中 FileNetP8 指定使用 EJB 方式连接,FileNetP8WSI 指定使用 WSI 方式来连接。
使用 Security Policy
下面我们来创建和赋值一个 security policy:
首先,创建三个 SecurityTemplate 对象,并把它们加到一个 SecurityTemplateList 对象中。其中,两个 template 的类型是 VersioningSecurityTemplate, 另一个是 ApplicationSecurityTemplate 。 VersioningSecurityTemplate 在 object 发行和取代版本时自动地应用。而 ApplicationSecurityTemplate 则需要手动地应用到一个 object 上。对于每个 template ,属性 TemplatePermissions 被设置到一个 AccessPermissionList 对象中,这是由 setPermissions() 方法来返回的。
更多精彩
赞助商链接