我正在使用 Spring 和 Thymeleaf ,我试图在标题中显示用户信息(用户名),并抛出所有页面。
header.html
<div th:fragment="logout" class="logout" sec:authorize="isAuthenticated()">
Logged in user: <span sec:authentication="name"></span> |
Roles: <span sec:authentication="principal.authorities"></span>
<div>
<form action="#" th:action="@{/logout}" method="post">
<input type="submit" value="Logout" />
</form>
</div>
</div>
但是它什么也没显示
答案 0 :(得分:0)
将依赖项添加到org.thymeleaf.extras:thymeleaf-extras-springsecurity4
的相应版本中。
然后将xmlns添加到您的html
<html xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
您就可以
<div th:text="${#authentication.name}">
The value of the "name" property of the authentication object should appear here.
</div>
的更多信息
答案 1 :(得分:0)
此问题的解决方案:
步骤1:创建一个CommunAdviceController
public class CommunAdviceController {
@Autowired
UtilisateurRepository utilisateurRepository;
@ModelAttribute("nomEtPrenom")
public String nomEtPrenomUtilisateur() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Utilisateur util = utilisateurRepository.findByEmail(authentication.getName()) ;
if( util != null) {
return util.getUsername();
}else {
return "Anonyme";
}
}
}
请注意,在我的情况下,我收到的用户邮件地址为getUsername
第2步:调用HTML中的方法
<a href ="#" th:text="${nomEtPrenom}" class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
工作完成了。
希望它将对某人有所帮助。