Защита Spring с динамической проверкой привилегий

#spring-security #thymeleaf

#spring-безопасность #thymeleaf

Вопрос:

 <div xmlns:th="http://www.w3.org/1999/xhtml" xmlns:sec="http://www.w3.org/1999/xhtml">
 <span sec:authorize="hasAnyRole(${p})">
<button>Save</button>
</span>
</div>
  

У меня есть этот код для проверки привилегий доступа к кнопке сохранения.

model.AddAttribute(«p», p); добавлен в контроллер с привилегиями p через запятую. Итак, как мне проверить, что у пользователя есть какая-либо из заданных ролей.

Ответ №1:

Пожалуйста, рассмотрите возможность использования функции предварительной обработки. Вы можете сделать это следующим образом:

 <div xmlns:th="http://www.w3.org/1999/xhtml" xmlns:sec="http://www.w3.org/1999/xhtml">
 <span sec:authorize="hasAnyRole(__${p}__)">
<button>Save</button>
</span>
</div>
  

Обратите внимание на использование начальных и конечных символов двойного подчеркивания, в которых thymeleaf оценивает это выражение перед чем-либо еще.