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.

Foi útil?

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 {
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top