Módulo de login personalizado JAAS
Pergunta
Eu tenho um módulo de login personalizado em um ouvido no JBoss. O meta-inf da EAR possui um jboss-pp.xml que aponta para um login-service.xml que contém um mBean que aponta para um login-config.xml que define o módulo de login personalizado.
O jboss.xml no meta-inf da EAR usa o mesmo domínio de segurança que o definido para o módulo de login no login-config.xml.
Ao fazer uma chamada para um EJB nesse ouvido, não vejo meu módulo de login personalizado executando os métodos de login e confirme como vi quando implementei isso em outros lugares no passado.
Eu tenho Trace Log4J Setup para org.jboss.security e vejo nada ao fazer a chamada EJB. A chamada EJB é bem -sucedida, embora não seja autenticado.
Não posso descobrir por que meu módulo de login não está sendo chamado ou como depurar o processo de decisão do JAAS. Alguma ideia? Obrigado.
Solução 2
Encontrei o problema, com alguma ajuda.
Meu jboss.xml estava na pasta Meta-Inf para a orelha, deveria estar na pasta Meta-Inf para o frasco EJB.
Aparentemente, o arquivo jboss na pasta Meta-Inf da EAR teria sido JBoss-App.xml, o que eu acho que seria a pista de lembrar para a próxima vez.
Outras dicas
O que você fez até agora é criar o módulo de login, agora você precisa dizer ao seu EJB para usá -lo:
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 {