Domanda

Ho un modulo di login personalizzato in un orecchio su JBoss. L'orecchio META-INF ha un jboss-app.xml, che punti ad un account di accesso-service.xml che contiene un MBean che punta a un login-config.xml che definisce il modulo di login personalizzato.

Il jboss.xml nel dell'orecchio META-INF utilizza la stessa sicurezza-dominio come quello definito per il modulo di login in login-config.xml.

Al momento di effettuare una chiamata a un EJB all'interno di quell'orecchio non vedo il mio modulo di login personalizzato che esegue il login e impegno metodi come ho visto quando ho implementato questo altrove in passato.

Ho installato log4j traccia per org.jboss.security e vedo non a fare la chiamata EJB. La chiamata EJB è ancora successo se non sto autenticato.

Non riesco a capire il motivo per cui il mio modulo di login non viene chiamato o come eseguire il debug il processo decisionale JAAS. Qualche idea? Grazie.

È stato utile?

Soluzione 2

Ho trovato il problema, con qualche aiuto.

Il mio jboss.xml era nella cartella META-INF per l'orecchio, avrebbe dovuto essere nella cartella META-INF per il jar EJB.

A quanto pare il file jboss nella cartella META-INF del orecchio sarebbe stato jboss-app.xml, che immagino sarebbe l'indizio da ricordare per la prossima volta.

Altri suggerimenti

Quello che hai fatto fino ad ora è la creazione del modulo di login, ora è necessario informare il bean di usarlo:

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 {
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top