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 :

Observateurs conditionnels (permissions)


Sujet :

Java EE

  1. #1
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut Observateurs conditionnels (permissions)
    J'ai un soucis avec les @Observes dans une application J2EE. J'ai des beans en @SessionScoped qui observent un évènement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @SessionScoped
    public class SomeProducer implements Serializable {
      @PostConstruct
      public void findData() { 
        //..
      }
      public void onDataChanged(@Observes DataChangedEvent event){ 
      //...
      }
    }
    Ce bean est destiné aux utilisateur admins, seuls eux l'utilisent. Ce bean appelle d'autres EJB avec des @RolesAllowed qui requierent d'être admin. Par contre, les évènements peuvent être envoyés par des utilisateurs lambda durant la modification de leurs données persos. Je me retrouve avec la situation curieuse où ce bean admin est instancié quand un utilisateur lance un event. J'ai donc trois questions:

    1)Y-a-t-il moyen de ne lancer l'event que vers les beans actuellement instanciés et non pas d'instancier tous les beans ayant un @Observes lors de l'event?
    2)Si ce n'est pas possible, est-il possible de marquer quelque part qu'un rôle est requis sur une méthode @Observe pour qu'elle soit ignorée si on n'a pas le rôle?
    3)Si je met un @RunAs sur le bean pour contourner le problème de droit, lors du @PostConstruct j'ai toujours le problème de permissions, comme si à ce moment là le @runas était ignoré. Le postconstruct est-il supposé respecter le @RunAs ?

    edit: je viens d'avoir la réponse à la question 1) et implicitement la 2) via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Observes(notifyObserver = Reception.IF_EXISTS)
    La 3) reste d'actualité

  2. #2
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Points : 96
    Points
    96
    Par défaut
    Je viens de trouver ceci, par hasard : https://docs.jboss.org/author/displa...eference+Guide
    et ceci, en cherchant un peu, http://www.javamonamour.org/2011/03/mdb-runas.html

    As-tu essayé l'annotation @RunAsPrincipal ? Cela a-t-il résolu ton soucis ?

    EDIT : Mais à y réfléchir je me demande si les annotations de sécurité EJB - et donc gérées par le conteneur d'EJB - ont une influence sur un postConstruct qui me semble être invoqué par le conteneur CDI, lequel est généralement distinct du conteneur EJB bien que travaillant avec lui... Pour lever l'ambiguité, j'utilerais bien un stateless bean plustôt qu'un bean CDI, à qui je confierais le traitement de la méthode findall. Qu'en penses-tu ? Et au niveau perf/gestion de ressources ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 14/11/2003, 22h51
  2. [CODE] Compilation conditionnelle ?
    Par Cornell dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2003, 18h16
  3. [XSL] déclaration conditionnelle
    Par Totsira dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/08/2003, 05h02
  4. [PostgreSQL]permission denied
    Par alex2205 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 13/02/2003, 13h27
  5. Permission sur un dossier
    Par Bjorn dans le forum C
    Réponses: 6
    Dernier message: 25/06/2002, 12h56

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