Java com.tivoli.mts.PDPrincipal.implies(com.tivoli.mts.PDPermission)已弃用

Java com.tivoli.mts.PDPrincipal.implies(com.tivoli.mts.PDPermission)已弃用,java,jaas,tivoli,tivoli-identity-manager,Java,Jaas,Tivoli,Tivoli Identity Manager,我正在使用下面的代码进行授权检查 PDPrincipal whoIsit = new PDPrincipal(userId,configURL); PDPermission whatTheyWant = new PDPermission(objectSpaceName,"TbvA"); boolean haveAccess = whoIsit.implies(whatTheyWant); 但是com.tivoli.mts.PDPrincipal上的implies方法已被弃用,并已被来自不同包的

我正在使用下面的代码进行授权检查

PDPrincipal whoIsit = new PDPrincipal(userId,configURL);
PDPermission whatTheyWant = new PDPermission(objectSpaceName,"TbvA");
boolean haveAccess = whoIsit.implies(whatTheyWant);
但是com.tivoli.mts.PDPrincipal上的implies方法已被弃用,并已被来自不同包的新PDPrincipal类的implies方法替换

com.tivoli.pd.jazn.PDPrincipal 
新方法如下。 公共布尔暗示(javax.security.auth.Subject)

新方法涉及一个主题

您能告诉我如何更改代码以使用新方法吗?我如何构造主题,或者我可以从某处获取主题

谢谢,
Rohit

我能够为这个问题找到一个解决方案,因此在这里分享它,以便任何其他面临同样问题的人都可以使用这个代码

我发现新的com.tivoli.pd.jazn.PDPermission类有一个方法implies,它接受PdAuthorization上下文,还有一个com.tivoli.pd.jazn.PDPrincipal对象,它执行与前一个类com.tivoli.mts.PDPrincipal相同的授权检查

下面提到的是如何进行相同的授权。使用此代码,您不需要实现JAAS代码

首先构建PdAuthorizationContext,如下所示。确保定义静态PdAuthorizationContext对象,以便在关闭它之前可以重用它。为每个授权检查构造PDAuthorizationContext是资源密集型的,不建议这样做。在逻辑结束时关闭上下文

URL-configURL=新URL(“文件:”+String-locationtotamconfifile);
PDAuthorizationContext pdAuthCtx=新的PDAuthorizationContext(configURL);

接下来,构建新的PDPrincipal和PdPermission对象,如下所示,并调用implies方法

com.tivoli.pd.jazn.PDPrincipal PDPrincipal=new com.tivoli.pd.jazn.PDPrincipal(pdAuthCtx,userId);
com.tivoli.pd.jazn.PDPermission PDPermission=new com.tivoli.pd.jazn.PDPermission(objectSpaceName,“TbvA”);
布尔值newimpliesTry=pdPermission.implies(pdAuthCtx,pdPrincipal);