9
votes

Sécurité du printemps: redirection de la page de connexion si l'authentification a échoué

Nous avons deux façons de vous connecter.

  • Le nom d'utilisateur et le mot de passe sont envoyés par une autre application dans les en-têtes de la demande. Il est examiné et si le nom d'utilisateur et le mot de passe sont corrects, il passe. [Un filtre personnalisé est écrit pour cela]
  • si le nom d'utilisateur et le mot de passe ne sont pas présents dans les en-têtes de demande, l'écran de connexion est présenté.

    Lorsque le nom d'utilisateur et le mot de passe sont présents dans l'en-tête de la demande et si c'est faux, je suis affiché à un état HTTP Status 401 - Échec de l'authentification: mauvais identifiants page.

    Comment puis-je indiquer la page de connexion au cas où l'authentification a échoué?

    ci-dessous est le code dans la sécurité.xml xxx

    S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations.

    EDIT: Ajout du code du filtre de requestheader dans mon application xxx

    }


  • 0 commentaires

    3 Réponses :


    1
    votes

    Le comportement par défaut sur l'échec de l'authentification consiste à afficher l'état HTTP 401. Dans le cas où SIMPLEURLAUTHENTICICATIONFAILUREHHANDLER est utilisé pour gérer les défaillances (comme indiqué par abstracttauthenticationProcessingfilter , ce comportement peut être remplacé par Réglage du defaultfailureurl à /login.jsp .

    alternativement, un gestionnaire d'erreur personnalisé peut être défini avec une action appropriée.


    3 commentaires

    Bonjour Raghuram, merci. Où dois-je configurer défautFailRureURL? Dois-je le brancher, dans le code que j'ai fourni ci-dessus?


    @vinoth. Cela dépend de la mise en œuvre de DemandeHeaderFilter implémentation. Les classes mentionnées dans la réponse montrent une façon de le faire


    Bonjour, j'ai ajouté la mise en œuvre du filtre d'en-tête de demande. Devrions-nous faire des changements dans cela?



    2
    votes

    Pour afficher la page de connexion au cas où l'authentification a échoué, vous devez avoir la même URL dans l'erreur code> et le code>

    Par exemple: p>

    <global-method-security secured-annotations="enabled" />
    
    <http auto-config="true" access-denied-page="/app/sesiones/procesarLogin"> 
        <logout logout-success-url="/app/sesiones/login" />
        <form-login 
            authentication-failure-url="/app/sesiones/login?error=true"
            login-page="/app/sesiones/login" default-target-url="/app/sesiones/procesarLogin" />
        <intercept-url pattern="/app/privados/*" access="ROLE_USER" />
    </http>
    


    0 commentaires

    0
    votes

    Il est également possible d'essayer ceci: xxx

    dans la méthode de configuration, vous pouvez ajouter votre filtrepipeline et d'autres éléments associés. Il est également possible de configurer l'accès des rôles à des points finaux spécifiques tels que vous pouvez voir https://docs.spring.io/spring-security/site/docs/current/guides/html5/form-javaconfig.htmlled/a >


    0 commentaires