覆盖线程上 JAAS 的 RunAs 主体集
要扩展 Java™ 认证和授权服务 (JAAS) 应用程序编程接口 (API) 提供的功能,您可以使用用于此运行线程上的出站请求的另一个有效条目设置 RunAs 主体集或调用主体集。
开始之前
- permission javax.security.auth.AuthPermission "wssecurity.getRunAsSubject"
- permission javax.security.auth.AuthPermission "wssecurity.getCallerSubject"
- permission javax.security.auth.AuthPermission "wssecurity.setRunAsSubject"
关于此任务
无论是否使用 WSSubject.doAs 方法将主体集与远程操作相关联,此扩展都允许您灵活地将主体集与此线程上的所有远程调用相关联。
应用程序开发者可以使用 WSSubject.doAs 方法来建立由 JAAS 登录模块认证的 JAAS 主体集,此 JAAS 登录模块作为执行指定操作时要使用的
WebSphere® Application Server 运行时的活动安全身份。仅当在为与线程同步而配置的组件中调用
WSSubject.doAs 时,WSSubject.doAs 才使线程标识同步。当与应用程序“与允许的操作系统线程同步”选项配合使用时,将在操作系统线程上设置此标识以获取该操作的范围。
过程
示例
try { javax.security.auth.Subject runas_subject, caller_subject; runas_subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject(); caller_subject = com.ibm.websphere.security.auth.WSSubject.getCallerSubject(); // set a new RunAs subject for the thread, overriding the one declaratively set com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(caller_subject); // do some remote calls // restore back to the previous runAsSubject com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(runas_subject); } catch (WSSecurityException e) { // log error } catch (Exception e) { // log error }