Я использую OpenAM 9.5.2 для аутентификации пользователей в приложении. Аутентификация работает хорошо, но у меня возникают проблемы с получением членства пользователей из конечного приложения.
Я определил группу «somegroup» в openam и добавил своего пользователя в эту группу. Теперь в моем приложении я хочу проверить, являются ли аутентифицированные пользователи членами этой группы. Если я тестирую его с помощью:
request.isUserInRole("somegroup");
Я получаю false
результат. На самом деле, я должен проверить
request.isUserInRole("id=somegroup,ou=group,dc=opensso,dc=java,dc=net");
чтобы получить ответ true
.
Я знаю, что можно определить список сопоставления привилегированных атрибутов в конфигурации агента sso для сопоставления id=somegroup,ou=group,dc=opensso,dc=java,dc=net
с somegroup
, но в моей ситуации это не подходит, поскольку роли и группы хранятся во внешней базе данных. Не удобно определять роль в базе данных и сопоставление в конфиге агента sso.
Итак, мой вопрос: есть ли способ заставить openam использовать «короткое» (т.е. somegroup
) имя группы вместо длинного универсального идентификатора?