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 Boot Java Discussion :

Spring Boot + Security = boucle infinie sur l'authentification


Sujet :

Spring Boot Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut Spring Boot + Security = boucle infinie sur l'authentification
    Bonjour à tous je viens de démarrer un petit projet avec Spring Boot et je me heurte à un petit problème depuis hier.

    Voici le problème, j'aimerais utilisé aussi Spring Security pour l'authentification des utilisateurs. Seulement lorsque je lance mon application et que je rentre une URL pour y accéder, j'ai une fenêtre d'authentification qui s'ouvre mais peut importe ce que je rentre comme login/mdp, la fenêtre ne part pas et je me retrouve dans une boucle infinie.

    Voici mes codes et configurations :

    Fichier application.properties :

    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
     
    spring.datasource.url=jdbc:mysql://localhost:3307/mabdd
    spring.datasource.username=root
    spring.datasource.password=azertY31
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
     
    #spring.datasource.testWhileIdle = true
    #spring.datasource.validationQuery = SELECT 1
     
    spring.jpa.show-sql = true
     
    #spring.jpa.hibernate.ddl-auto = update
     
    spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
     
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
    mon main est celui de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @SpringBootApplication
    public class BusinessBootApplication {
     
    	public static void main(String[] args) {
    		SpringApplication.run(BusinessBootApplication.class, args);
    	}
    }
    et mon controller (j'ai aussi une classe modele et une dao mais je ne pense pas que ça vous soit utilise) :

    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
    56
    57
    58
    59
    60
    61
    62
     
    @Controller
    public class UserController {
     
    	@Autowired
    	private UserDao userDao;
     
    	@RequestMapping("/createUser")
    	@ResponseBody
    	public String create(String _login){
    		String userId = "";
    		try{
    			User user = new User(_login);
    			userDao.save(user);
    			userId = String.valueOf(user.getIdUtilisateur());
    		} catch (Exception ex){
    			return "Error creation user : " + ex.toString();
    		}
    		return "Creation success for user id :" + userId.toString();
    	}
     
    	@RequestMapping("/delete")
    	@ResponseBody
    	public String delete(Long _idUser){
    		try{
    			User user = userDao.findOne(_idUser);
    			userDao.delete(user);
    		} catch (Exception ex){
    			return "Error deleting user id :" + _idUser;
    		}
    		return "Delete success for user id " + _idUser;
    	}
     
    	@RequestMapping("/get-by-login")
    	@ResponseBody
    	public String getByLogin(String _login){
    		String userId = "";
    		try{
    			User user = userDao.findByLogin(_login);
    			userId = String.valueOf(user.getIdUtilisateur());
    		}catch (Exception ex){
    			return "Error get by login : " + _login;
    		}
    		return "The user id is : " + userId.toString(); 
    	}
     
    	@RequestMapping("/update")
    	@ResponseBody
    	public String update(Long _id, String _login){
     
    		try {
    			User user  =userDao.findOne(_id);
    			user.setLogin(_login);
    			userDao.save(user);
    		} catch (Exception ex) {
    			return "Erreur update user id : " + _id.toString();
    		}
     
    		return "User success update for id : " + _id.toString();
    	}
     
    }
    J'essaye d'accéder à l'URL "http://localhost:8080/createUser?login=bzzzz" après avoir lancé l'application, et je rentre login=root et mdp=azertY31 comme c'est spécifié dans mon fichier properties mais ça ne passe pas.

    Avez-vous une idée de ce que j'aurais pu oublier ?

    Merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 391
    Points
    391
    Par défaut
    Le login/mdp que tu donne semblent etre ceux de ta BDD, pas de la securité.

    Il faut que tu definisse ta securité avec le type d'authentification.
    Regarde sur le Securing a Web Application, il explique bien comment mettre la sécurité.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    Parfait. C'était bien ça.
    Effectivement quand on lance l'application, le password est indiqué dans les logs. Le login par défaut est "user".
    On peut changer le password dans le properties via : security.user.password=mon-mdp

    Merci encore.

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

Discussions similaires

  1. [AC-2003] Boucle Infinie sur RecordSet
    Par aminnio dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/06/2013, 10h55
  2. Boucle infini sur Cat
    Par Jiheme44 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 16/05/2013, 12h12
  3. [XL-2010] Boucle infinie sur macro
    Par Excel_man dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/02/2013, 18h07
  4. boucle infinie sur remplissage du rapport
    Par couetbis dans le forum Jasper
    Réponses: 5
    Dernier message: 15/08/2010, 07h39

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