Bonjour,
J'ai mis en place l'authent <http-basic> de Spring Security 3.0.5 sur mon application pour authentifier des utilisateurs et leurs droits d'accès. Lorsque je tape l'url de ma webapp dans un navigateur (j'ai testé firefox et chrome), j'ai bien une popup d'authentification qui s'affiche, mais j'ai 2 soucis différents :
1/ Si je saisis un utilisateur qui n'existe pas, ou bien si l'utilisateur existe mais que le password est incorrect, la popup d'authent s'affiche indéfiniment tant que je ne saisis un user et un password valides, au lieu d'afficher une page d'erreur 401 classique. La page d'erreur 401 ne s'affiche que quand je clique sur le bouton "Annuler" de la popup.
Par contre si le user et le password sont corrects mais que le user n'a pas l'autorisation d'accéder à la page, j'ai bien la page d'erreur 403 qui s'affiche tt de suite.
2/ autre problème : lorsque l'authent a échoué (erreur 401 ou 403), si je tape à nouveau l'url de ma webapp dans le navigateur, la popup d'authent ne s'affiche pas et la dernière page d'erreur (401 ou 403) s'affiche immédiatement, comme s'il gardait en mémoire la dernière tentative d'accès et ne cherchait plus à m'authentifier. Pourtant je n'ai pas activer le remember-me, ou bien alors j'ai loupé qqchose.
Voici mon fichier spring-security.xml :
L'authentification via le ldap marche bien, c'est la demande de connexion qui me pose des problèmes.
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 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:sec="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.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.4.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <!-- properties for ldap connection --> <value>classpath:spring_ldap.properties</value> </list> </property> </bean> <sec:http> <sec:intercept-url pattern="/**" access="ROLE_USER" /> <sec:http-basic /> </sec:http> <sec:ldap-server url="${tammis.ldap.url}" manager-dn="${tammis.ldap.managerDn}" manager-password="${tammis.ldap.managerPwd}" /> <sec:authentication-manager> <sec:ldap-authentication-provider user-search-filter="${tammis.ldap.userSearchFilter}" user-search-base="${tammis.ldap.userSearchBase}" group-search-filter="${tammis.ldap.groupSearchFilter}" group-search-base="${tammis.ldap.groupSearchBase}" group-role-attribute="${tammis.ldap.groupRoleAttribute}" /> </sec:authentication-manager> </beans>
Merci d'avance pour votre aide.
Le marlou
Partager