Доступ к списку пользователей через JBoss с правами администратора?
Мы хотели бы сделать список пользователей доступным в портлете, аналогичном административной версии UsersPortlet, но для тех, кто не является администратором. Этот список будет только имена. Есть ли способ сделать это через JBoss GA 4.2.2? В настоящее время мы разрабатываем Hypersonic DB, но я надеюсь, что есть независимый от DB способ сделать это через JBoss.
1 ответ
Решение
Мы нашли Identity Manager и связанные с ним классы. Используя исходный код конфигурации по умолчанию, можно:
import org.jboss.portal.identity.UserModule;
import org.jboss.portal.identity.RoleModule;
import org.jboss.portal.identity.MembershipModule;
import org.jboss.portal.identity.UserProfileModule;
[...]
(UserModule)new InitialContext().lookup("java:portal/UserModule");
RoleModule rm = (RoleModule)new InitialContext().lookup("java:portal/RoleModule");
(MembershipModule)new InitialContext().lookup("java:portal/MembershipModule");
(UserProfileModule)new InitialContext().lookup("java:portal/UserProfileModule");
rm.findRoles()
Важный момент, который нас понял, заключается в том, что для правильного заполнения InitialContext это должно происходить в транзакции. Это означает, что если вы используете RichFaces, это не может иметь место в базовых компонентах.