IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

@DenyAll ne fonctionne pas, isCallerInRole oui


Sujet :

Java EE

  1. #1
    Membre averti Avatar de mmathieu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 35
    Points : 318
    Points
    318
    Par défaut @DenyAll ne fonctionne pas, isCallerInRole oui
    Bonjour à tous,
    je suis en train de tester la sécurité pour les EJB, et j'ai un problème: l'annotation @DenyAll (même problème avec @RolesAllowed + un rôle inexistant) ne fonctionne pas: l'appel à la méthode business est effectué. En revanche, si j'utilise la méthode isCallerInRole, ça fonctionne.
    J'utilise JBoss 5.1.0.GA

    J'authentifie le client par une simple JSP. Depuis une Servlet j'appelle l'EJB.

    Les EJB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @SecurityDomain("mySecurityDomain")
    @DeclareRoles({"guest", "user"})
    @Stateless
    public class TestSecurityAnnotationsBean implements ITestSecurityRemote {
     
      @DenyAll
      public String sayMeHello(String name) {
        System.out.println("TestSecurityAnnotationsBean OK");
        return "Hello " + name;
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    @SecurityDomain("mySecurityDomain")
    @DeclareRoles({"guest", "user"})
    @Stateless
    public class TestSecurityIsCallerInRoleBean implements ITestSecurityRemote {
     
      @Resource
      private EJBContext context;
     
      public String sayMeHello(String name) {
        if (!context.isCallerInRole("user")) {
          throw new SecurityException();
        }
        System.out.println("TestSecurityIsCallerInRoleBean OK");
        return "Hello " + name;
      }
    }
    Sortie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    15:11:10,452 INFO  [STDOUT] TestSecurityAnnotationsBean OK
    15:11:10,515 ERROR [[Hello]] Servlet.service() for servlet Hello threw exception
    javax.ejb.EJBException: java.lang.SecurityException
    	at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:77)
      ...
    Caused by: java.lang.SecurityException
    	at com.test.TestSecurityIsCallerInRoleBean.sayMeHello(TestSecurityIsCallerInRoleBean.java:22)
      ...

  2. #2
    Membre averti Avatar de mmathieu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 35
    Points : 318
    Points
    318
    Par défaut
    Même problème, mais symptôme différent: http://www.coderanch.com/t/476558/EJ...ting-calls-EJB

    Dans mon cas le problème était que le code avait été écrit d'abord pour du JBoss 4, et que là je le testais avec JBoss 5.

    La réponse est dans le lien ci-dessus par Jaikiran Pai:
    @org.jboss.security.annotation.SecurityDomain était pour les JBoss AS-4.x.
    Pour JBoss AS-5.x et suivant, il faut utiliser @org.jboss.ejb3.annotation.SecurityDomain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. @denyall ne fonctionne pas
    Par goute dans le forum Services Web
    Réponses: 0
    Dernier message: 11/05/2010, 15h46
  2. Réponses: 6
    Dernier message: 02/04/2009, 12h52
  3. Réponses: 5
    Dernier message: 17/12/2008, 14h18
  4. Scrollbars ne fonctionne pas mais resize oui ?
    Par didite49 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 02/07/2008, 17h15
  5. Réponses: 4
    Dernier message: 28/12/2006, 18h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo