Подтвердить что ты не робот

Как получить доступ к роли в JSP с помощью spring безопасности?

Я хочу напечатать роль пользователя в JSP? Я знаю, что есть тег spring -security, называемый <sec:authentication property="principal.username"/> Используя этот тег, я могу получить доступ к имени пользователя.. но как получить доступ и распечатать текущую роль в jsp?

4b9b3361

Ответ 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>