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 :

plusieurs types authentification spring security


Sujet :

Spring Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut plusieurs types authentification spring security
    Bonjour,

    J'aimerai savoir si techniquement il est possible de configurer dans le fichier xml spring security pour avoir plusieurs types d'authentification (2 dans mon cas).

    En effet, dans notre application, il y a deux types d'utilisateurs (utilisateurs interne & externe)

    Pour les utilisateurs interne, nous utilisons une authentification par login/password.

    Pour les utilisateurs externe, nous utilisons une authentication par certificat.

    La question est plutôt, comment configurer pour utiliser la bonne authentification ?

    Car nous allons déployer 2 wars, un à destination des utilisateurs externe et un à destination des utilisateurs interne. Il faudrait pouvoir configurer à partir d'un fichier properties ou spring afin d'utiliser la bonne authentification.

    Par ex dans un fichier properties dire :
    war=utilisateurExterne (ou utilisateurInterne)

    et spring se charge d'utiliser l'authentification par login ou par certificat


    Merci d'avance !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    En fait, là, j'aimerai savoir s'il est possible de rendre paramètrable le web.xml

    par ex: actuellement, j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>
    			classpath*:spring/applicationContext.xml
    			classpath*:spring/applicationContext-security-http.xml
    		</param-value>
    	</context-param>
    J'aimerai rendre paramètrable la valeur classpath*:spring/applicationContext-security-http.xml en l'externalisation dans un fichier properties.

    En gros, j'aurai 2 fichiers spring security (un pour login/password et l'autre pour l'authentification par certificat). Et on pourrait le rendre paramètrable par fichier properties ou par pom.




    J'ai essayé de le mettre dans un fichier properties, mais ça ne fonctionne pas.

    En gros, j'aurai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>
    			classpath*:spring/applicationContext.xml
    			application.type
    		</param-value>
    	</context-param>
    Fichier properties :
    application.type = classpath*:spring/applicationContext-security-http.xml
    Comment faire ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Bonjour,

    Ceci pourrais peut être t'aider :

    http://java.developpez.com/faq/sprin...rtyplaceholder

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut,

    Tu as plusieurs solutions.
    En solution simple:
    - les filtres Maven qui permettent de remplacer les variables mavenisés (ex :${myProperty} en fonction des valeurs dans un fichier properties en entrée ou une property du pom.
    -la tache replace du plugin maven-antrun-plugin...
    Dans les deux cas, tu pourrais variabiliser l'import du fichier spring securité xml (qu'il soit déclaré dans le web.xml ou dans un autre fichier spring).
    Ils flottent tous en bas

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    ok merci, je regarde vos solutions

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    merci, ça marche avec une tache ant !!

    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
    18
    19
    20
     
     
    <plugin>
       <artifactId>maven-antrun-plugin</artifactId>
    	   <executions>
        	       <execution>
    		   <phase>compile</phase>
    		         <configuration>
    		         <tasks>
    				<copy overwrite="true" file="${basedir}/src/main/resources/spring/applicationContext-security-front-http.xml" tofile="${project.build.outputDirectory}/spring/applicationContext-security-http.xml"/>
       		              	<delete file="${project.build.outputDirectory}/spring/applicationContext-security-front-http.xml"/>
       		               	<delete file="${project.build.outputDirectory}/spring/applicationContext-security-middle-http.xml"/>
       		          </tasks>
    		         </configuration>
    		          <goals>
    		             <goal>run</goal>
    		           </goals>
    		    </execution>
           </executions>
    </plugin>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Cool,

    Vu la commande, j'ai l'impression que tu as utilisé un profil maven.

    Tu as très bien fait de poster ton code. Ça pourra aider les prochains
    Ils flottent tous en bas

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 31
    Points : 18
    Points
    18
    Par défaut plusieurs types d'authentification
    Bonsoir,
    j'ai suivie la discussion mais j'ai pas compris qu'est ce que je dois faire pour ajouter un autre type d’authentification,j'ai dans mon application 2 tables utilisateur et professionnel ,l'authentification pour l'utilisateur marche bien,c'est selon le rôle de celui qui tend à se connecter que la page s'affiche," rôle" est un champs dans chacune des tables ,
    voici mon fichier Spring .xml :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:security="http://www.springframework.org/schema/security"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
      					http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                  		http://www.springframework.org/schema/security 
                  		http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
     
        <!--  Déclaration du PropertyPlaceholderConfigurer -->
     
    	<bean
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="locations">
    			<list>
    				<value>classpath:/db.properties</value>
    			</list>
    		</property>
    	</bean>
    <!--  Déclaration de la DATASOURCE -->
     
    	<bean id="dataSource"
    		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="${db.driver}" />
    		<property name="url" value="${db.url}" />
    		<property name="username" value="${db.username}" />
    		<property name="password" value="${db.password}" />
    	</bean>
     
     
    	<!-- Stratégie de Sécurité : ressources et Remember me -->
    	<security:http auto-config="true">
    	    <security:intercept-url pattern="/inscriptionUti.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    	    <security:intercept-url pattern="/inscriptionpro.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />	    
    		<security:intercept-url pattern="/login.jsp*" filters="none"/> 
    		<security:intercept-url pattern="/logo*" filters="none"/>  
    		<security:intercept-url pattern="/objis.css" filters="none"/>  
    		<security:intercept-url pattern="/**" access="ROLE_PROFESSIONNEL,ROLE_CLIENT"/>
    	  	<security:form-login login-page='/login.jsp'/>	
     
    	</security:http>
     
     
    <security:authentication-provider user-service-ref='myUserDetailsService' />
     
    <bean id="myUserDetailsService" class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl">
      <property name="dataSource" ref="dataSource"/>
      <property name="usersByUsernameQuery" value="SELECT login as username, password, enabled , nom, prenom
                                                     FROM utilisateur WHERE login = ?"/>
      <property name="authoritiesByUsernameQuery" value="SELECT login as username, role 
                                                           FROM utilisateur WHERE login = ?"/>
     
    </bean>  
     
     
    </beans>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/11/2015, 22h42
  2. Aide plusieurs authentification avec spring security
    Par ahmedpa dans le forum Spring
    Réponses: 0
    Dernier message: 16/06/2015, 09h47
  3. Réponses: 1
    Dernier message: 23/05/2014, 07h47
  4. authentification spring security en utilisant la base de données
    Par kariel dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 22/05/2014, 13h33
  5. [Security] Plusieurs types d'authentification avec spring security
    Par soumayachouchene dans le forum Spring
    Réponses: 0
    Dernier message: 10/04/2013, 18h45

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