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 !
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:
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> |