Spring boot + thymeleaf: войдите в систему пользователя
Я хотел бы знать, как я могу получить объект пользователя с Thymeleaf. В настоящее время я вызываю свой userService, который получит пользователя из БД. Мне не нравится этот подход, потому что для каждого вызова запрос к БД не будет.
можно ли получить пользователя из памяти?
<link href="/css/style2.css"
th:if="${@commanderService.getCurrentCommander()} and
${@commanderService.getCurrentCommander().settings == 'template=1'}"
rel="stylesheet" type="text/css" />
CommanderService:
public Commander getCurrentCommander() {
Object principal =
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Commander commander = findByName((String)principal);
return commander;
}
1 ответов
Если вы используете spring security и thymeleaf, вы можете проверить:
https://github.com/thymeleaf/thymeleaf-extras-springsecurity3
Например:
<div sec:authentication="name">
The value of the "name" property of the authentication object should appear here.
</div>
<div sec:authorize="hasRole('ROLE_ADMIN')">
This content is only shown to administrators.
</div>