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 :

Application spring-security-web security


Sujet :

Spring Web Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Application spring-security-web security
    Bonjour à tous,

    Je viens de parcourir le forum pour essayer de comprendre ce qui m'arrive, est je n'ai pas trouvé la réponse

    Je suis en train de développer une application spring web mvc,
    Je me débrouille en utilisant différent "excellent" conseil que je trouve sur ce site .
    Ce tuto est à l'origine de mon environnement de dev :https://rpouiller.developpez.com/tut...ing-hibernate/
    un grand merci

    Mais voila je n'arrive pas à faire fonctionner spring-security-web

    J'ai suivi à la lettre le tuto : https://www.intertech.com/Blog/sprin...-ldap-example/ et j'ai systématiquement une erreur de login incorrecte

    Qu'à cela ne tienne je me dis que j'ai commencé trop gros donc j'ai trouvé un autre tuto : https://www.mkyong.com/spring-securi...world-example/ Qui lui est on ne peut plus simple

    Je vous fais remarquer que les deux tutos utilisent un paramétrage basé sur les "Beans" ce que je recherche (pas obligatoire mais plus simple à mettre en oeuvre à mon gout)
    ET LA !!!! je vous le donne en plein dans le mille ... j'ai systématiquement "bad credential" je suis pourtant pas aussi benêt pour savoir écrire un mot et une suite de chiffre

    Donc je me tourne vers vous en espérant que l'un d'entre vous pourra me fournir une explication ou un tuto qui fonctionne de nos jours

    J'oubliais pour ceux qui veulent un peut plus d'info:

    Je développe sous éclipse 2018-12, le serveur de débug est un Tomcat9 intégré à éclipse

    un extrait de mon POM:
    Code XML : 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
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>compile</scope>
            </dependency>
     		<dependency>
        		<groupId>org.springframework</groupId>
        		<artifactId>spring-webmvc</artifactId>
        		<version>${spring.version}</version>
    		</dependency>
    		<dependency>
    		    <groupId>com.google.code.gson</groupId>
    		    <artifactId>gson</artifactId>
    		    <version>2.8.5</version>
    		</dependency>
     
    		<!-- ############################## -->
    		<!-- 			Login				-->
    		<!-- ############################## -->
    		<dependency>
    			<groupId>org.springframework.security</groupId>
    			<artifactId>spring-security-web</artifactId>
    			<version>${spring.security.version}</version>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.security</groupId>
    			<artifactId>spring-security-config</artifactId>
    			<version>${spring.security.version}</version>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.security</groupId>
    			<artifactId>spring-security-ldap</artifactId>
    			<version>${spring.security.version}</version>
    		</dependency>

    Le contenu du Web.xml quasiment au complet:
    ne manque que la connexion à la BDD

    Code XML : 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
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>/WEB-INF/spring-security.xml</param-value>
    	</context-param>
     
    	<filter>
    		<filter-name>springSecurityFilterChain</filter-name>
    		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>springSecurityFilterChain</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
     
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
     
        <servlet>
            <servlet-name>servlet-dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
    <!--             <param-value></param-value> -->
                <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> 
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>servlet-dispatcher</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>

    Rien de spécial dans le dispatcher car la config Spring Security est dans le fichier spring-security.xml:

    Code XML : 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
    	<http pattern="/resources/**" security="none"/>
    	<http pattern="/listeAdherents" security="none"/> 
     
    	<http auto-config="true">
    		<intercept-url pattern="/addAdherent**" access="hasAnyRole('allusers', 'USER', 'GG_Informatique')" />
    		<intercept-url pattern="/parametrage**" access="hasAnyRole('allusers', 'USER', 'GG_Informatique')" />
     
    <!-- 		<form-login login-page='/login' -->
    <!-- 			default-target-url="/listeAdherents" -->
    <!-- 			authentication-failure-url="/listAdherent" /> -->
    <!-- 	    <logout logout-success-url="/logout" /> -->
    	</http>
     
    	<authentication-manager>
    	  <authentication-provider>
    	    <user-service>
    		<user name="admin" password="123456" authorities="allusers" />
    	    </user-service>
    	    <password-encoder ref="encoder" />
    	  </authentication-provider>
    	</authentication-manager>
     
    	<beans:bean id="encoder"
    		class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
    	</beans:bean>
     
    </beans:beans>

    Voila j’espère avoir quelques pistes car j'avoue que je sèche un peu.
    Merci de votre aide

    Dodger

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Une réponse à moi-même

    Visiblement c'est dû à la "trop" grande différence de version entre Spring du tuto (3.2.8) est la dernière version en (5.1.5)

    Seulement entre temps Spring à changé de politique sur le cryptage des mots de passe ...
    Bah sinon ce serait trop facile

    Donc je me retrouve avec le message :
    java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
    à la validation du mot de passe.

    Voila si quelqu'un a une idée je suis preneur

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Re reponse a moi même

    Bah oui si ça peut aider qlq'un

    Le message et du au ROLE qui n'existe pas ... à ce que j'ai compris les rôles doivent être formatés 'ROLE_...' et là magie

    Pour remédier au probleme d'encodage du mot de passe, ajouter '{noop}' devant le mot de passe.

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           <authentication-manager>
    		<authentication-provider>
    			<user-service>
    				<user name="admin" password="{noop}123456" authorities="ROLE_Test" />
    			</user-service>
    		</authentication-provider>
    	</authentication-manager>

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

Discussions similaires

  1. web application Spring Security !
    Par B.Adele dans le forum Spring
    Réponses: 3
    Dernier message: 16/12/2015, 06h01
  2. Sécuriser un web service avec JAAS ou Spring-Security
    Par Le Marlou dans le forum Services Web
    Réponses: 1
    Dernier message: 26/07/2011, 18h37
  3. Réponses: 1
    Dernier message: 06/03/2011, 16h54
  4. [Security] Spring security 3 web.xml
    Par sgamette dans le forum Spring
    Réponses: 3
    Dernier message: 07/11/2010, 12h59
  5. Spring security + Web service: Authentification
    Par Toinou87 dans le forum Services Web
    Réponses: 1
    Dernier message: 11/07/2009, 15h32

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