2016-05-16 9 views
2

Я создаю обработчик событий для изменения пароля пользователя с помощью API-интерфейса OIM UserManager. Но теперь мне нужно рассмотреть политику паролей, а затем создать новый пароль, совместимый с политикой пароля, определенной в OIM.Как сгенерировать пароль на основе пароля в OIM 11gr2ps2

Не могли бы вы указать некоторые API и методы, которые могут помочь здесь?

ответ

2
import oracle.idm.common.ipf.api.password.RandomPasswordGenerator; 
import oracle.idm.common.ipf.api.password.RandomPasswordGeneratorImpl; 

Классы выше на самом деле дают дескриптор случайного сгенерированного пароля, который я искал. В приведенном ниже коде показана реализация для того же самого.

PasswordPolicyInfo passwordPolicyInfo = ((PasswordMgmtService)Platform.getService(PasswordMgmtService.class)).getApplicablePasswordPolicy(entityId, Boolean.valueOf(false)); 

    RandomPasswordGenerator randomPasswordGenerator = new RandomPasswordGeneratorImpl(); 

    OimPasswordPolicy policy = new OimPasswordPolicy(Utils.getIpfPasswordPolicyInfoVO(passwordPolicyInfo)); 
    policy.setId(passwordPolicyInfo.getId()); 
    policy.setName(passwordPolicyInfo.getName()); 

    char[] generatedPassword = randomPasswordGenerator.generatePassword(policy, null); 
0

Вы можете использовать PasswordMgmtService api предоставленный OIM. Вы можете использовать метод ниже в логике генерации паролей в коде обработчика событий.

PasswordPolicyDescription getApplicablePasswordPolicyDescription(java.lang.String userID) 

В PasswordPolicyDescription объекта у вас есть все свойства, которые были настроены при создании политики паролей.

+0

Является ли этот ответ разрешен твоя проблема. – varpekv

+0

Это не полностью разрешает проблему, так как мне нужно получить случайно сгенерированный пароль, а не правила, связанные с политикой пароля. С помощью этих правил я могу построить свою логику для генерации пароля, но обработчик пароля по умолчанию делает то же самое, поэтому я думаю, что будет некоторый API, который позволит ему это сделать. Так что ищите его – Chaitanya

2

Альтернативно, используя ниже OIM API, вы можете создать пароль, а также проверить его против любой политики в OIM:

import oracle.iam.passwordmgmt.api.PasswordMgmtService; 
import oracle.iam.passwordmgmt.domain.generator.RandomPasswordGeneratorImpl; 

Вот фрагмент кода:

RandomPasswordGeneratorImpl randomPasswordGenerator = new RandomPasswordGeneratorImpl(); 
UserRepository userRepository = new DBUserRepository(); 
UserInfo usrInfo = userRepository.getUserAndManagerInfo(usrLogin); 
String generatedPassword = new String(randomPasswordGenerator.generatePassword(Utils.getUser(usrInfo))); 
PasswordMgmtService passMgmt = Platform.getService(PasswordMgmtService.class); 
ValidationResult result = passMgmt.validatePasswordAgainstPolicy(generatedPassword.toCharArray(), Utils.getUser(usrInfo), Locale.getDefault()); 

 Смежные вопросы

  • Нет связанных вопросов^_^