Я хочу напечатать роль пользователя в JSP? Я знаю, что есть тег spring -security, называемый <sec:authentication property="principal.username"/>
Используя этот тег, я могу получить доступ к имени пользователя.. но как получить доступ и распечатать текущую роль в jsp?
Как получить доступ к роли в JSP с помощью spring безопасности?
Ответ 1
Так как principal
относится к вашему объекту UserDetails
, если вы проверяете этот объект, роли хранятся в public Collection<GrantedAuthority> getAuthorities() { .. }
.
Тем не менее, если вы просто хотите напечатать роли на экране, сделайте следующее: -
<sec:authentication property="principal.authorities"/>
Ответ 2
Используйте getAuthorities или напишите собственную версию userdetails и создайте удобный метод.
или:
<sec:authorize access="hasRole('supervisor')">
This content will only be visible to users who have
the "supervisor" authority in their list of <tt>GrantedAuthority</tt>s.
</sec:authorize>
из здесь.
Ответ 3
<sec:authentication property="principal.authorities" var="authorities" />
<c:forEach items="${authorities}" var="authority" varStatus="vs">
<p>${authority.authority}</p>
</c:forEach>