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 :

Rôles dans Spring security


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut Rôles dans Spring security
    Bonjour,
    Je suis entrain de sécuriser mon application web en utilisant spring security et JDBC.

    J'ai pu, enfin, mettre en place l'authentification. mais, il me reste maintenant l'autorisation ( permissions aux utilisateurs d'accéder aux pages de l'application en vérifiant leurs rôles)

    je définie les accès en utilisant cette balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <intercept-url pattern="/**" access="ROLE_USER" />
    Je veux que mes rôles soient ceux récupérés de ma base de données et qui peuvent avoir des noms différents des rôles définies par spring (pas de prefixe ROLE_ par exemple)?

    Comment et où les définir?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Tu commences par créer ton propre authentication manager avec :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <sec:authentication-provider
    		user-service-ref="myUsersDetailsService" />

    dans l'xml et du côté java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class MyUserDetailsService implements UserDetailsService
    Et dans la méthode loadUserByUsername, tu charges l'utilsiateur de ta base et tu renseignes les granted authorities.

    Remarque que tout ça est expliqué en détail dans la documetnation officielle de Spring Security http://static.springsource.org/sprin...gsecurity.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Par défaut
    Salut et merci de l'explication djo.mos et projetM pour le post et les réponses :p ça m'éclaire pas mal, je butais un peu sur ce même problème.

    J'utilise spring security 2.0.4 pour le moment. J'aimerais savoir un p'tit truc : comment gérer l'erreur de login? C'est bien dans le "authentication-provider" non? J'ai trouvé des exemples la dessus, mais j'ai un peu de mal a saisir comment faire.

    Je m'explique sur ce que j'aimerais atteindre : lorsque l'on configure le "login http" si je puis le nommer ainsi, en automatique comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <http auto-config='true'>
        <intercept-url pattern="/**" access="ROLE_USER" />
    </http>
    on a une gestion automatisée des utilisateurs via des vues (je parle surtout du login là) sur lesquelles on n'a pas la main, pour peu que l'on ait configuré correctement son accès en base (ce qui est mon cas, sinon rien ne fonctionne :p ).

    Lors d'une erreur de login, on a l'écran suivant qui apparait :
    Nom : LogFail.png
Affichages : 538
Taille : 7,8 Ko

    avec une url de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    spring_security_login?login_error
    J'aimerais reproduire le même système dans ma propre gestion de logins, sans le formatage de l'URL, un peu comme si j'utilisais un "validator" comme dans le tuto de spring MVC.

    J'ai déjà un systeme de vues fonctionnelles en ayant configuré mon applicationcontext comme suit (pour la partie qui nous interesse) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <security:http >
    	<security:intercept-url pattern="/login*" filters="none"/>
    	<security:intercept-url pattern="/**" access="ROLE_USER"/>
    	<security:form-login authentication-failure-url="/login" login-page="/login" default-target-url="/hello" always-use-default-target="true"/>
    	<security:logout/>
    </security:http>
    Je suppose du coup qu'il faut intervenir sur le "authentication-provider" et y gérer soi-même ses erreurs? Comment transmettre ces dernières à la vue? Dans le tutoriel de MVC, on a dans un formulaire la balise <form:errors /> suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td width="60%">
        <form:errors path="percentage" cssClass="error"/>
    </td>
    qui permet grâce à un validator d'afficher des erreurs (poucentage trop ou pas assez élevé par exemple).

    Dois-je implémenter mon validator pour cette page de login? Ou bien est-ce géré par le système déjà existant, il n'y aurait qu'une balise a inclure à ma propre page de login personnalisée et je suis passé a côté? (ca ne fait que 4 jours que je suis dessus, excusez ma "novicitude" si je puis dire )

    J'espère avoir été assez clair! si des précisions manquent, dites-le moé que je corrige

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Par défaut
    Un petit UP pour ce petit problème qui me bloque?

    PS : je dois peut-être refaire carément un nouveau post pour ma question non?
    Merci

Discussions similaires

  1. [Security] Gestion des sessions dans Spring Security
    Par flamant dans le forum Spring
    Réponses: 1
    Dernier message: 31/07/2012, 10h08
  2. [Security] SecurityEnforcementFilter dans spring security?
    Par wystan dans le forum Spring
    Réponses: 0
    Dernier message: 01/09/2009, 11h50
  3. Configurer un pakage dans spring config ?
    Par Invité dans le forum Spring
    Réponses: 1
    Dernier message: 28/12/2006, 19h11
  4. [Spring MVC] Architecture MVC dans spring
    Par Alec6 dans le forum Spring Web
    Réponses: 4
    Dernier message: 11/10/2006, 12h35
  5. [Security] Exception dans ACEGI Security
    Par Pikwik dans le forum Spring
    Réponses: 4
    Dernier message: 17/08/2006, 08h42

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