¿Cómo convierto JSP (etiquetas personalizadas) al Código en un servlet en la primavera de Seguridad?

StackOverflow https://stackoverflow.com/questions/1659723

  •  11-09-2019
  •  | 
  •  

Pregunta

Estoy trabajando en un proyecto en el que tengo que incluir algún código de un JSP . Este JSP tiene el código de la siguiente manera (en relación con Spring Security ) ...

<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core_rt' %>
<%@ page import="org.springframework.security.ui.AbstractProcessingFilter" %>
<%@ page import="org.springframework.security.ui.webapp.AuthenticationProcessingFilter" %>
<%@ page import="org.springframework.security.AuthenticationException" %>
....
<c:if test="${not empty param.login_error}">
      <font color="red">
        Your login attempt was not successful, try again.<br/><br/>
        Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>.
      </font>
</c:if>
....
<c:if test="${not empty param.login_error}"><c:out value="${SPRING_SECURITY_LAST_USERNAME}"/></c:if>
...

Esto es lo que he intentado comprobar en mi servlet:

enumr = request.getAttributeNames();
while(enumr.hasMoreElements())
{
    String element = enumr.nextElement()+"";
    out.print("<h3>Read an element:");
    out.print(element+" » ");
    out.print(request.getAttribute(element));
    out.print("</h3>");
}

y la salida correspondiente:

Read an element:__spring_security_session_fixation_filter_applied » true
Read an element:__spring_security_filterSecurityInterceptor_filterApplied » true
Read an element:hibernateFilter.FILTERED » true
Read an element:__spring_security_session_integration_filter_applied » true
Read an element:requestContextFilter.FILTERED » true

Una conjetura es que puedo concluir un error en la lectura, _spring_security_filterSecurityInterceptor_filterApplied representa que ha ocurrido un error.


¿Cómo llego a leer el mensaje de error?

¿Fue útil?

Solución

En primer lugar: no está utilizando Facelets. Está utilizando JSP. Esos dos son ambas tecnologías visión independiente de Sol, en donde Facelets es más o menos visto como JSP en esteroides. Por lo que este tema está etiquetada erróneamente con Facelets.

En segundo lugar: el código HTML etiqueta está obsoleta desde HTML 4.01 en 1998. Se debe utilizar CSS

.

Volver a su problema: No hago la primavera, así que no puedo ir a fondo en detalle, pero he comprobado la sesión en ámbito attribtues? Buscar en Google rápidamente el botón de "SPRING_SECURITY_LAST_EXCEPTION.message" me entera de que se almacena en el ámbito de la sesión.

Otros consejos

Funciona:

String keyToSearch = AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY;
Object value = request.getSession().getAttribute(keyToSearch);

Gracias una vez más BalusC

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top