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 Web Java Discussion :

[Security] Java Config et multiple AuthenticationManager


Sujet :

Spring Web Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Points : 83
    Points
    83
    Par défaut [Security] Java Config et multiple AuthenticationManager
    Bonjour à tous !

    J'essaye tant bien que mal de convertir ma config XML en config Java.

    Mon problème est que j'ai 2 Authentication manager, 1 pour la partie cliente et 1 pour la partie admin.
    et donc j'ai sur l'element <http> une reférence à authentication manager comme ceci pour la partie client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <http auto-config="false" use-expressions="true" path-type="regex"
    		disable-url-rewriting="true" authentication-manager-ref="customerAuthenticationManager">
    et pour la partie admin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <http use-expressions="true" disable-url-rewriting="true"
    		auto-config="true" authentication-manager-ref="adminAuthenticationManager"
    		pattern="/admin/**">
    Et donc j'ai converti le premier comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Bean(name = "customerAuthenticationManager")
    	public AuthenticationManager getAuthenticationManager() throws Exception {
    		AuthenticationManagerBuilder auth = new AuthenticationManagerBuilder(
    				objectPostProcessor);
    		auth.userDetailsService(userDetailsService());
    		return auth.build();
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Override
    	protected void configure(HttpSecurity http) throws Exception {
    		http.authorizeRequests().antMatchers("/**", "/*").permitAll()
    				.anyRequest().authenticated();
    		http.formLogin().loginPage("/login").permitAll().and().logout()
    				.permitAll();
     
    	}
    le problème est que je ne sait pas comment faire l'équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    authentication-manager-ref="customerAuthenticationManager"
    car si j'ajoute le second les problème commence ....

    Est ce que quelqu'un a une idée ??

    Merci d'avance

  2. #2
    Membre habitué Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Points : 137
    Points
    137
    Par défaut
    Pour info, Spring ne peut utiliser qu'un seul authenticationManager (sauf erreur de ma part), mais tu peux avoir plusieurs providers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <security:authentication-manager>
          <security:authentication-provider ref="ClientProvider" />
          <security:authentication-provider ref="AdminProvider" />
    </security:authentication-manager>
    Ton erreur est d'essayer d'avoir 2 managers alors qu'il te faut en réalité 2 providers. Ci-dessous quelques liens qui peuvent être utiles, tu pourras chercher d'autres informations sur Google. J'aurais bien voulu fournir le code moi-même et l'expliquer mais je n'ai utilisé cette méthode que pour une authentification "commune" + LDAP.

    http://www.javacodebook.com/2013/07/...ion-providers/
    https://blog.codecentric.de/en/2012/...e-application/

  3. #3
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Points : 83
    Points
    83
    Par défaut
    en XML tu peux en avoir plusieurs en fait , raison pour laquel on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    authentication-manager-ref="customerAuthenticationManager"
    En tout cas ça fonctionne en XML

    Mais en mode Java Configuration ... pas moyen ...

    La raison pour laquelle j'ai 2 authenticationManager et que j'ai une authentification pour la partie client du site et aussi une autre pour la partie admin.

    Actuellement l'admin est dans la même appli via une url du mondomaine.com/admin
    A terme ça sera séparer dans une autre appli mais en attendant j'aurais bien voulu convertir ma config Spring Security d'XML à Java ... en attendant j'importe ma config Security XML dans mon AppConfig.java

    du coup c'est pas super clean donc si quelqu'un a une idée ? en attendant que je sépare le site web de l'admin

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2014, 19h33
  2. java.security.AccessControlException: access denied
    Par ludonantes dans le forum Applets
    Réponses: 10
    Dernier message: 28/03/2006, 17h44
  3. Lecture d'un fichier XML de config avec Java
    Par cofy dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 31/01/2006, 15h54
  4. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03
  5. [Java Security Manager] ajouter des permissions
    Par dahwoud dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/07/2005, 09h11

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