Spring Security: redireccionando a la página de inicio de sesión si la autenticación falló

Tenemos dos formas de iniciar sesión.

El nombre de usuario y la contraseña son enviados por otra aplicación en los encabezados de solicitud. Se examina y si el nombre de usuario y la contraseña son correctos, entra. [Se escribe un filtro personalizado para esto] Si el nombre de usuario y la contraseña no están presentes en los encabezados de solicitud, se presenta la pantalla de inicio de sesión.

Cuando el nombre de usuario y la contraseña están presentes en el encabezado de la solicitud y, si es incorrecto, se muestra unHTTP Estado 401 - Error de autenticación: credenciales incorrectas página

¿Cómo hago que muestre la página de inicio de sesión en caso de que falle la autenticación?

Abajo está el código en security.xml

    <http auto-config="true" use-expressions="true">
             <access-denied-handler error-page="/login.jsp"/>
            <intercept-url pattern="/*Login*" access="hasRole('ROLE_ANONYMOUS')"/>
            <intercept-url pattern="/*" access="hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')"/>
            <custom-filter ref="requestHeaderFilter" before="FORM_LOGIN_FILTER"/>
            <form-login login-page="/login.jsp"/>

    </http>

Por favor, avíseme si necesita más información.

Edit: Agregar el código para el filtro RequestHeader en mi aplicación

public class RequestHeaderProcessingFilter extends AbstractAuthenticationProcessingFilter{

private String usernameHeader = "j_username";
private String passwordHeader = "j_password";


protected RequestHeaderProcessingFilter() {
    super("/login_direct");
 }

//getters and setters

@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException {
    String username = request.getHeader(usernameHeader);
    String password = request.getHeader(passwordHeader);

     SignedUsernamePasswordAuthenticationToken authRequest =
        new SignedUsernamePasswordAuthenticationToken(username, password);

      return this.getAuthenticationManager().authenticate(authRequest); 
}

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta