Sto utilizzando Spring MVC e Spring Security versione 3.0.6.RELEASE. Qual è il modo più semplice per ottenere il nome utente nel mio JSP? O anche solo se l'utente ha effettuato l'accesso o meno? Mi vengono in mente un paio di modi:Ottenere il preside di sicurezza Spring nell'espressione JSP EL
1. Utilizzando uno scriptlet
Utilizzando uno scriptlet come questo per determinare se l'utente è connesso:
<%=org.springframework.security.core.context.SecurityContextHolder.getContext()
.getAuthentication().getPrincipal().equals("anonymousUser")
? "false":"true"%>
Io non sono un fan di utilizzare scriptlet, però, e voglio usarlo in alcuni tag <c:if>
, che richiede di rimetterlo come attributo di pagina.
2. Utilizzando SecurityContextHolder
ho potuto ancora utilizzare SecurityContextHolder dal mio @Controller
e metterlo sul modello. Ho bisogno di questo su ogni pagina, quindi, preferirei non dover aggiungere questa logica in ognuno dei miei controller.
Ho il sospetto che ci sia un modo più pulito per fare questo ...
Perfetto! Per chiunque altro possa vederlo, ho dovuto aggiungere a spring-security.xml per farlo funzionare. –
Ottimo, molto meglio! Se qualcun altro ha questo problema, i miei tag di sicurezza primaverili sono stati ignorati fino a quando non ho aggiunto una dipendenza da tagli di sicurezza a molla nel mio pom.xml. – user64141