Foros del Web » Programación para mayores de 30 ;) » Java »

Mostrar username despues de un login fallido

Estas en el tema de Mostrar username despues de un login fallido en el foro de Java en Foros del Web. Pues bien estoy usando Spring security en mi proyecto y el login me funciona bien, el problema lo tengo cuando tengo un login fallido. Quiero ...
  #1 (permalink)  
Antiguo 26/11/2013, 12:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 43
Antigüedad: 18 años, 2 meses
Puntos: 1
Mostrar username despues de un login fallido

Pues bien estoy usando Spring security en mi proyecto y el login me funciona bien, el problema lo tengo cuando tengo un login fallido. Quiero obtener el nombre de usuario para mostrar y en caso de que exista añadirle un login fallido para llegar a un número determinado bloquear la cuenta y que resetee la contraseña.

Mi spring-security.xml
Código PHP:
    <http auto-config="true">
        <
intercept-url pattern="/welcome*" access="ROLE_USER" />
        
        <
form-login login-page="/login" 
            
authentication-failure-url="/login-failed" />
        <
logout logout-success-url="/" />
    </
http
Mi login.jsp:
Código PHP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ 
page language="java" contentType="text/html;  charset=UTF-8" pageEncoding="UTF-8"%>
<
html lang="es">
<
head>
<
title>Login Page</title>
<
style>
.
errorblock {
    
color#ff0000;
    
background-color#ffEEEE;
    
border3px solid #ff0000;
    
padding8px;
    
margin16px;
}
</
style>
</
head>
<
body onload='document.f.j_username.focus();'>
    <
h3>Login with Username and Password (Custom Page)</h3>
 
    <
c:if test="${not empty error}">
        <
div class="errorblock">
            
Your login attempt was not successful, try again.<br /> Caused :
            ${
sessionScope["SPRING_SECURITY_LAST_EXCEPTION"].message}
        </
div>
    </
c:if>
 
    <
form name='f' action="<c:url value='j_spring_security_check' />"
        
method='POST'>
 
        <
table>
            <
tr>
                <
td>User:</td>
                <
td><input type='text' name='j_username' value=''>
                </
td>
            </
tr>
            <
tr>
                <
td>Password:</td>
                <
td><input type='password' name='j_password' />
                </
td>
            </
tr>
            <
tr>
                <
td colspan='2'><input name="submit" type="submit"
                    
value="submit" />
                </
td>
            </
tr>
            <
tr>
                <
td colspan='2'><input name="reset" type="reset" />
                </
td>
            </
tr>
        </
table>
 
    </
form>
</
body>
</
html
Y mi controlador:

Código PHP:

 
@RequestMapping(value="/welcome"method RequestMethod.GET)
 public 
String printWelcome(ModelMap modelPrincipal principal ) {

     
model.addAttribute("username"principal.getName());  
     
model.addAttribute("message""Spring Security Custom Form example");
     return 
"hello";
 }
 @
RequestMapping(value="/login-failed"method RequestMethod.GET)
 public 
String loginerror(ModelMap modelPrincipal principal) {

   
User user;
   
user uDao.getByEmail(principal.getName());
   
model.addAttribute("message"message);
   
model.addAttribute("view"view);
   return 
"main-layout";
 } 
El problema es que como aquí no hay un login válido es principal.getName() es nulo, ¿Como puedo obtener el nombre de usuario que han introducido para mostrar el error y sumarle un intento en caso de que exista?

Muchas gracias. Un saludo!
  #2 (permalink)  
Antiguo 27/11/2013, 10:27
 
Fecha de Ingreso: febrero-2006
Mensajes: 43
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Mostrar username despues de un login fallido

Nadie tiene idea de como obtener el nombre de usuario introducido cuando el login ha fallado????

Un saludo y gracias.

Etiquetas: html, jsp, login, string, username
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:15.