как сравнить ответ authority.getAuthority() с определенной ролью ‘ROLE_ADMIN’ в thymeleaf?

#thymeleaf

#thymeleaf

Вопрос:

Я попробовал приведенный ниже код, но false даже для ROLE_ADMIN

 <th:block th:each="authority : ${#authentication.getAuthorities()}">
     <span  th:with="role=${authority.getAuthority()}">
         <span th:text="${role}"></span>
         <p th:with="res=${#strings.toString(role) == 'ROLE_ADMIN'}">
            <div th:if="${res}">successtrial</div>
            <div th:unless="${res}">failed trial</div>
            <span th:text=${res}></span>
     </span>
        </p>      
</th:block>
 

Получение ${role} — напечатано правильно, но, наконец, неудачное испытание

Ответ №1:

Вы можете использовать hasRole метод следующим образом:

 <div sec:authorize="hasRole('ADMIN')">
  <div>success trial</div>
</div>
<div sec:authorize="!hasRole('ADMIN')">
  <div>failed trial</div>
</div>
 

Убедитесь org.thymeleaf.extras:thymeleaf-extras-springsecurity5 , что в вашем приложении есть зависимость.

Комментарии:

1. Можете ли вы добавить больше деталей? «не работает для меня» не очень понятно, в чем проблема.

2. Приведенный выше ответ верен, но моя проблема заключается в том, что пробелы, добавленные к значению ‘ROLE_ADMIN’ в таблице, обновили значение, а также изменили тип данных как varchar — решили проблему