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 :

comment changer l'adresse de consommation "login" qui est l' authentification de spring boot par défaut ?


Sujet :

Spring Boot Java

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut comment changer l'adresse de consommation "login" qui est l' authentification de spring boot par défaut ?
    Bonjour,

    Pour s' authentifier , le client doit consommé la requête http par l'url "/login" qui est l'adresse par défaut de spring boot.

    Je souhaite le changer au lieu de faire un POST login je souhaite le modifier par l' adresse "/connexion".

    Comment faut t'il s'y prendre ?

    J'avais tenté de faire une entrée avec postMapping mais je n'arrive pas appelé correctement 'AuthenticationManager" pour
    vérifier si l'identifiant est correcte afin de fournir le jeton JWT au client .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        @PostMapping("/connexion")
        public Membre bookodLog(@RequestBody RegisterForm membreForm){
     
            Membre membre = new BookodMembre();
            System.out.print("tentative de connexion, identification, vérification de l'utilisateur et envoie du jeton si ok");
     
            BookodMembre user=accountService.findUserByUsername(membreForm.getUsername());
            System.out.print(user);
            //on vérifie l'autentification et en envoie le jeton JWT
        }
    merci de votre réponse.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    J'ai pu intercepté l'uri:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        http.addFilterBefore(new JWTLoginFilter("/connexion", authenticationManager()),UsernamePasswordAuthenticationFilter.class);
        http.addFilterBefore(new JWTAuthorizationFilter(),UsernamePasswordAuthenticationFilter.class);
    par contre une fois rentré dans le premier filtre before , je cherche comment correctement appliquer le filtre AuthorizationFilter().

    voici la class JWTLoginFilter:

    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
     
     
    public class JWTLoginFilter extends AbstractAuthenticationProcessingFilter {
     
        public JWTLoginFilter(String url, AuthenticationManager authManager) {
            super(new AntPathRequestMatcher(url));
            setAuthenticationManager(authManager);
     
        }
     
        @Override
        public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
                throws AuthenticationException {
            BookodMembre membre = null;
            System.out.println(this.getAuthenticationManager());
            return null;
        }
     
    }
    le méthod "attemptAuthentication" je l'ai déjà dans la class JWTAuthentificationFilter ...

    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
     
    public class JWTAuthentificationFilter extends UsernamePasswordAuthenticationFilter{
        private AuthenticationManager authenticationManager;
     
        public JWTAuthentificationFilter(AuthenticationManager authenticationManager){
            super();
            this.authenticationManager = authenticationManager;
        }
     
        @Override
        public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
            throws AuthenticationException{
                Membre membre = null;
     
                try {  
                    System.out.println("333==> JWT Auhentification");
                    membre = new ObjectMapper().readValue(request.getInputStream(), Membre.class);
     
                } catch (Exception e) {
                    System.out.println("!!!!!!!!!!!!!ERREUR !!!!!!!!!:"); 
                    throw new RuntimeException(e);
                }         
                return authenticationManager.authenticate(
                    new UsernamePasswordAuthenticationToken(membre.getUsername(), membre.getpassword())
                );
        }
    si je tente un copier coller de cette méthode, ça fera doublon

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Configuration
    @EnableWebSecurity
    public class ... extends WebSecurityConfigurerAdapter {
    
    
    
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests(). ... .loginPage("/myloginpage"). ... ;
    
    
        }

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de la réponse

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

Discussions similaires

  1. Comment changer le CR ( le retour chariot) qui est en DOS, en UNIX?
    Par amateur_will dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 03/04/2014, 16h34
  2. comment changer l'adresse IP publique ?
    Par messahel dans le forum Sécurité
    Réponses: 1
    Dernier message: 24/10/2009, 23h17
  3. [Subversion] Comment changer l'adresse du dépot ?
    Par Bluespear dans le forum NetBeans
    Réponses: 1
    Dernier message: 17/01/2009, 12h14
  4. Réponses: 1
    Dernier message: 13/05/2007, 13h25
  5. Réponses: 2
    Dernier message: 16/03/2007, 16h26

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