com.tivoli.mts.PDPrincipal.implies(com.tivoli.mts.PDPermission) устарел

Я использую приведенный ниже код для проверки авторизации.

PDPrincipal whoIsit = new PDPrincipal(userId,configURL);
PDPermission whatTheyWant = new PDPermission(objectSpaceName,"TbvA");
boolean haveAccess = whoIsit.implies(whatTheyWant);

Однако метод implies в com.tivoli.mts.PDPrincipal устарел и был заменен методом implies из нового класса PdPrincipal из другого пакета.

com.tivoli.pd.jazn.PDPrincipal 

Новый метод заключается в следующем. public boolean подразумевает (javax.security.auth.Subject subject)

новый метод принимает тему.

Пожалуйста, дайте мне знать, как я могу изменить свой код, чтобы использовать новый метод? Как мне построить Предмет или я могу получить Предмет откуда-то?

Спасибо, Рохит

1 ответ

Я смог найти решение для этого, поэтому поделился им здесь, чтобы любой, кто столкнулся с той же проблемой, мог использовать этот код.

Я обнаружил, что у нового класса com.tivoli.pd.jazn.PDPermission есть метод подразумевает, который принимает контекст PdAuthorization, и объект com.tivoli.pd.jazn.PDPrincipal, который выполняет ту же авторизацию, что и предыдущий класс com.tivoli..mts.PDPrinal для использования.

Упомянуто ниже, как можно сделать то же самое разрешение. С этим кодом вам не нужно реализовывать код JAAS.

Сначала создайте PdAuthorizationContext, как показано ниже. Убедитесь, что вы определили статический объект PdAuthorizationContext, чтобы его можно было использовать повторно, пока вы не закроете его. Создание PDAuthorizationContext для каждой проверки авторизации требует значительных ресурсов и не рекомендуется. закройте контекст в конце вашей логики

URL configURL = new URL("file:" + String locationToTamConfigFile); PDAuthorizationContext pdAuthCtx = new 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"); boolean newimpliesTry = pdPermission.implies(pdAuthCtx,pdPrincipal);

Другие вопросы по тегам