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

Spring Java Discussion :

Gestion dynamique des rôles avec Spring security


Sujet :

Spring Java

  1. #1
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut Gestion dynamique des rôles avec Spring security
    Bonsoir,

    Je veux savoir s'il est possible de gérer les rôles des utilisateurs et les accès aux URL de façon dynamique avec le framework spring security.

    Par exemple : je veux crée un rôle ROLE_MANAGER (l'administrateur de l'application celui qui crée les rôles). Ce rôle peut modifier/lire par exemple la liste des utilisateurs.
    Donc, il a l’accès aux URL suivants: "localhost:8080/App/getAllUsers" + "localhost:8080/App/UpdateUsers"

    On peut faire cet exemple dans spring security sans besoin de définir de manière statique les URL et ses rôles comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    http.authorizeRequests().antMatchers("/App/getAllUsers").hasRole("MANAGER")
    .and()
    ...
    ..antMatchers("/App/UpdateUsers").hasRole("MANAGER")
    Merci de m'orienter vers la bonne solution,

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Personnellement, je ne joue jamais avec le hasRole() de la couche Web pour diverses raisons,
    je définis autant de WebSecurityConfigurerAdapter que de méthodes d'authentication supportée par l'application et conduisant à des "zones" d'URL particulières et des politiques de csrf(), sessionManagement(), ... différentes.

    Exemple de cas simple avec 2 WebSecurityConfigurerAdapter:
    un premier supportant le BASIC AUTH pour les REST services sur l'espace /rest (pas de csrf et session STATELESS)
    et un deuxième pour l'authentication via un ou plusieurs filtres JEE (CAS, OAUth2, ...) pour l'interface utilisateur, sur le reste des URLs (csrf et session fixation par migration)
    (le userform login n'étant utilisé que dans la config des tests unitaires)

    j'utilise juste le ".authenticated()" sur les antMatchers() qui doivent être protégés par authentication (la majorité).

    La "vraie" protection se fait un niveau de la couche service avec les annotations @Secure, @PreAuthorize, ... de Spring ou celles de la JSR-250.

    Les avantages que j'y trouve étant :
    - configuration de sécurité identique dans toutes les applications : le "credential manager" étant ici identique pour toutes les applis, seuls les paramètres pour s'y connecter (essentiellement l'ID de l'application client) changent
    le "credential manager" == le service (application indépendante) qui pour un utilisateur donné et une application client retourne les "authorities" (les rôles)
    - la manière de retourner les erreurs est standardisée puisque les "problèmes" d'autorité arrivent toujours dans la même couche (et la manière de les logger/notifier aussi...)
    - la couche service reste protégée quelque soit la manière d'y accéder (MVC, batch, Quartz, ...)
    - on minimise le nombre d'endroits où l'on s'occupe de la gestion des "authorities"

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2008, 22h47
  2. [Data] Gestion des couches avec Spring
    Par Jacobian dans le forum Spring
    Réponses: 3
    Dernier message: 08/06/2008, 22h03
  3. [Data] gestion des transactions avec Spring Probleme
    Par mouvma dans le forum Spring
    Réponses: 2
    Dernier message: 02/04/2008, 20h39
  4. Gestion des rôles avec Active Directory ?
    Par Mandotnet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/12/2007, 11h23

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