Estoy usando Spring MVC y Spring Security versión 3.0.6.RELEASE. ¿Cuál es la forma más fácil de obtener el nombre de usuario en mi JSP? ¿O incluso si el usuario ha iniciado sesión o no? No puedo pensar en un par de maneras:Obtener Spring Security Principal en expresión JSP EL
1. El uso de un scriptlet
El uso de un scriptlet como este para determinar si el usuario se registra en:
<%=org.springframework.security.core.context.SecurityContextHolder.getContext()
.getAuthentication().getPrincipal().equals("anonymousUser")
? "false":"true"%>
No soy un fan de la utilización scriptlets, sin embargo, y quiero usar esto en algunas etiquetas <c:if>
, que requieren volver a colocarlo como un atributo de página.
2. Usando SecurityContextHolder
pude volver a utilizar SecurityContextHolder de mi @Controller
y lo puso en el modelo. Necesito esto en cada página, así que prefiero no tener que agregar esta lógica en cada uno de mis Controladores.
Sospecho que hay una forma más limpia de hacer esto ...
¡Perfecto! Para cualquier otra persona que pueda ver esto, tuve que agregar a spring-security.xml para que funcione. –
¡Genial, mucho mejor! Si alguien más tiene este problema, las etiquetas de seguridad de primavera se ignoran hasta que agregue una dependencia spring-security-taglibs en mi pom.xml. – user64141