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 :

Problème avec spring security: les pages sécurisées ne s'ouvrent pas même pour les utilisateurs recommendés


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut Problème avec spring security: les pages sécurisées ne s'ouvrent pas même pour les utilisateurs recommendés
    Bonjour a tous. Dans le souci de sécuriser l'application que j'ai développez grâce a Spring Boot 1.5.10 j'ai suivi un tutoriel. Pour l'instant mes utilisateurs sont en mémoire avec la technique InMemoryAuthentication et j'ai redefini les méthodes protected void configure(AuthenticationManagerBuilder auth) throws Exception et protected void configure(HttpSecurity http) throws Exception de la classe WebSecurityConfigurerAdapter.
    mais lors de l'exécution j'ai bel et bien des erreurs signaler sur la page web pour les utilisateurs non existant mais pour ceux qui existe j'ai une erreur 403 forbidden concernant csrf. Quand je le desactive avec http.csrf().disable(); je reussi pas toujours à ouvrir la page securiser même avec l'utilisateur qui possède le bon rôle.
    J'ai donc besoin d'aide pour reussir a debloquer cette situation. Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut precision supplementaire
    ci-joint le contenu de la classe qui me permet de personnaliser la securite
    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
     
    /**
     * 
     */
    package org.schoolmind.config;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
     
    /**
     * @author cedrickiadjeu
     *
     */
    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter{
     
    	@Autowired
    	private SimpleAuthenticationSuccessHandler successHandler;
     
     
    	@Override
    	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    		auth.inMemoryAuthentication().withUser("admin").
    			password("12345").roles("ADMIN");
    	}
     
    	@Override
    	protected void configure(HttpSecurity http) throws Exception {
    		http.formLogin();
     
    		http.authorizeRequests().antMatchers("/schoolmind/indexAdmin")
    		.hasRole("ADMIN").anyRequest().authenticated();
    		http.authorizeRequests().antMatchers("/schoolmind/index").permitAll();
    		http.csrf().disable();
     
    	}
     
    }
    Donc le problème est que quand je me connecte avec login=admin et password=12345 je ne suis pas rediriger vers la page /schoolmind/indexAdmin comme indique dans la config mais plutot vers une erreur

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Relisez les exemples dans le code source de HttpSecurity.java...

    La configuration se fait par chaînage des appels : pas en recommençant à chaque ligne...

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut plus d'éclairage
    Merci déjà de votre réaction mais je comprend pas vraiment ce que vous me proposez en me disant de Relisez les exemples dans le code source de HttpSecurity.java...
    S'il vous plait plus ample explication sans vouloir vous vexez bien sur

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    relisez les exemples et comparez avec ce que vous faites : vous verrez bien que, si cela ressemble beaucoup, il y a une différence de taille… et je vous l'ai dit dans le post précédent.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut
    J'ai regarde encore un autre tuto et j'ai modifie ma classe de configuration de spring security comme ceci
    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
     
    package org.schoolmind.config;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
     
    /**
     * @author cedrickiadjeu
     *
     */
    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter{
     
    	@Override
    	protected void configure(HttpSecurity http) throws Exception {
    		http.csrf().disable();
    		http
    			.authorizeRequests()
    				.antMatchers( "/schoolmind/index").permitAll()		
    				.antMatchers("/schoolmind/indexAdmin").hasRole("ADMIN")			
    				.and()
    			.formLogin();
    				//.loginPage("/login").failureUrl("/login-error");	
    	}
     
    	@Autowired
    	public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    		auth
    			.inMemoryAuthentication()
    			.withUser("user").password("12345").roles("ADMIN");
    	}
     
     
    }
    Mais lorsque je demande la page j'obtiens une erreur 404
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    There was an unexpected error (type=Not Found, status=404).No message available
    alors qu'en désactivant la sécurité sur la page en question elle s'affiche sans problème.
    Donc je reste toujours coincé déjà que je ne sais même pas si l'authentification a reussi ou pas.
    Voila mon controleur au cas ou l'erreur pourrait venir de la:
    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
     
    /**
     * 
     */
    package org.schoolmind.web;
     
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
     
    /**
     * @author cedrickiadjeu
     *
     */
    @Controller
    @RequestMapping(value="/schoolmind")
    public class IndexController {
     
    	@RequestMapping(value="/index")
    	public String index(@RequestParam(name="lang" ,defaultValue="fr")String lang){
    		return "index";   
    	}
     
    	@RequestMapping(value="/indexAdmin", method=RequestMethod.GET)
    	public String indexAdmin(@RequestParam(name="lang" ,defaultValue="fr")String lang){
    		return "indexAdmin";   
    	}
     
    }
    Tres simpliste puisque mon but est juste de tester spring security avant de l'utiliser dans mon application

Discussions similaires

  1. Empêcher l'accès à une page jsf avec spring security
    Par mounitahard dans le forum Spring
    Réponses: 1
    Dernier message: 02/06/2014, 11h43
  2. [Framework] Problèmes avec Spring et les transactions.
    Par balteo dans le forum Spring
    Réponses: 0
    Dernier message: 27/04/2011, 18h55
  3. Réponses: 1
    Dernier message: 06/03/2011, 16h54
  4. Réponses: 5
    Dernier message: 07/09/2009, 09h16
  5. [SP-2007] les résultats de recherche ne sont pas identiques pour deux utilisateurs
    Par hassine dans le forum SharePoint
    Réponses: 5
    Dernier message: 07/09/2009, 09h16

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