首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >com.tivoli.mts.PDPrincipal.implies(com.tivoli.mts.PDPermission)已弃用

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

Stack Overflow用户
提问于 2015-08-25 10:39:37
回答 1查看 115关注 0票数 1

我使用下面的代码来做授权检查。

代码语言:javascript
复制
PDPrincipal whoIsit = new PDPrincipal(userId,configURL);
PDPermission whatTheyWant = new PDPermission(objectSpaceName,"TbvA");
boolean haveAccess = whoIsit.implies(whatTheyWant);

但是,com.tivoli.mts.PDPrincipal上的隐含方法已被弃用,取而代之的是来自不同包的新PdPrincipal类中的隐含方法。

代码语言:javascript
复制
com.tivoli.pd.jazn.PDPrincipal 

新方法如下所示。公共布尔值暗示(javax.security.auth.Subject主题)

新方法采用了一个主题。

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

谢谢你,罗希特

EN

回答 1

Stack Overflow用户

发布于 2015-09-04 13:56:37

我想出了一个解决方案,因此在这里分享,这样任何其他面临同样问题的人都可以使用这段代码。

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

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

首先构建PdAuthorizationContext,如下所示。确保定义一个静态PdAuthorizationContext对象,以便在关闭它之前可以重用它。为每个授权检查构建PDAuthorizationContext会占用大量资源,因此不推荐使用。关闭逻辑结尾处的上下文

URL configURL = new URL("file:" + String locationToTamConfigFile); PDAuthorizationContext pdAuthCtx = new PDAuthorizationContext(configURL);

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

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"); boolean newimpliesTry = pdPermission.implies(pdAuthCtx,pdPrincipal);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32194689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档