我想知道如何从Thymeleaf获取User对象。当前,我正在调用我的userService,它将从数据库获取用户。我不喜欢这种方法,因为对于每个调用都会进行数据库查询。
是否可以从内存中获取用户?
<link href="/css/style2.css"
th:if="${@commanderService.getCurrentCommander()} and
${@commanderService.getCurrentCommander().settings == 'template=1'}"
rel="stylesheet" type="text/css" />
OrderService:
public Commander getCurrentCommander() {
Object principal =
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Commander commander = findByName((String)principal);
return commander;
}
如果您正在使用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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句