2010-06-09 7 views
3

J'ai un module de connexion personnalisé dans une oreille sur jboss. Le fichier META-INF de l'oreille contient un fichier jboss-app.xml qui pointe vers un fichier login-service.xml qui contient un fichier mbean pointant vers un fichier login-config.xml qui définit le module de connexion personnalisé. Le jboss.xml dans le fichier META-INF de l'oreille utilise le même domaine de sécurité que celui défini pour le module de connexion dans login-config.xml. En appelant un EJB dans cette oreille, je ne vois pas mon module de connexion personnalisé exécuter les méthodes de connexion et de validation comme je l'ai vu lorsque j'ai implémenté ceci ailleurs par le passé.Module de connexion personnalisé JAAS

J'ai trace la configuration de log4j pour org.jboss.security et je ne vois rien à rendre l'appel EJB. L'appel EJB est réussi même si je ne suis pas authentifié.

Je n'arrive pas à comprendre pourquoi mon module de connexion n'est pas appelé ou comment déboguer le processus de décision JAAS. Des idées? Merci.

Répondre

2

Je trouve le problème, avec un peu d'aide. Mon jboss.xml était dans le dossier META-INF pour l'oreille, il aurait dû être dans le dossier META-INF pour le jar d'EJB

Apparemment, le fichier jboss dans le dossier META-INF de l'oreille aurait été jboss-app.xml, ce qui, je suppose, serait l'indice à retenir pour la prochaine fois.

3

Ce que vous avez fait jusqu'à présent est la création du module de connexion, maintenant vous devez dire à votre EJB pour l'utiliser:

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 { 
+0

Merci - comment puis-je faire cela sans annotations? J'ai l'EJB défini dans le même jboss.xml qui spécifie le domaine de sécurité, je ne sais pas si c'est l'alternative aux annotations. – rich