JAAS Custom Module входа в систему
Вопрос
У меня есть пользовательский входной модуль в ухе на jboss. Meta-inf уха имеет jboss-app.xml, которые указывают на логин-сервис .xml, который содержит MBean, который указывает на логин-config.xml, который определяет пользовательский модуль входа в систему.
Jboss.xml в Meta-INC EAR использует тот же домен безопасности, что определено для модуля входа в систему в логине-CONFIG.XML.
При вызове EJB в этом ухе я не вижу свой пользовательский модуль для входа в систему, запущенную вход и коммитарию методов, как я видел, когда я реализовал это в другом месте в прошлом.
У меня есть Trace Log4j Setup для org.jboss.security и вижу ничего заставить вызов EJB. Вызов EJB успешен, даже если я не аутентифицирован.
Я не могу работать, почему мой входной модуль не вызывается или как отладить процесс принятия решения JAAS. Есть идеи? Спасибо.
Решение 2
Я нашел проблему с некоторой помощью.
Мой jboss.xml был в папке Meta-inf для уха, она должна была быть в папке Meta-Inf для банки EJB.
По-видимому, файл jboss в папке Meta-inf ушей был бы jboss-app.xml, который, я думаю, был бы подсказка для запоминания в следующий раз.
Другие советы
То, что вы сделали до сих пор, создают модуль входа в систему, теперь вам нужно сказать, чтобы ваш EJB использовать его:
import javax.annotation.security.RolesAllowed;
import javax.ejb.Stateless;
import org.jboss.ejb3.annotation.SecurityDomain;
@Stateless
@SecurityDomain("mySecurityDomain")
@RolesAllowed({"guestRole", "userRole", "adminRole"})
public class SecureBean implements Secure {