gpt4 book ai didi

java - Springboot/Thymeleaf 在每个页面上从模型中检查当前用户

转载 作者:行者123 更新时间:2023-11-28 05:18:31 25 4
gpt4 key购买 nike

我正在尝试为每个页面提供以下模型,以便我可以检查当前用户是否已登录,从而控制每个页面的标题菜单项,但我不想总是返回 index.html 。有什么办法可以返回self吗?

@RequestMapping(value = "/**", method = RequestMethod.GET)
String index(Model model) {
Users user = usersRepository.findOne(1 L);

if (user != null) {
String currentRole = user.getRole().toString();
model.addAttribute("currentRole", currentRole);
// System.out.println("Current Role: " + currentRole);
} else {
model.addAttribute("currentRole", "ANONYMOUS");
}

return "index";
}

我的菜单:

<li th:switch="${currentRole}">
<!-- Is Employee, so show "My Requests" -->
<div th:case="EMPLOYEE">
<a href="#" th:href="@{/requests}">
<div style="float: left; margin-right: 10px;">My Requests</div>
<!-- Handle notifications here -->
<div style="overflow: hidden" id="circle">1</div>
</a>
</div>
<!-- Is Manager, so show "My Approvals" -->
<div th:case="MANAGER">
<a href="#" th:href="@{/requests}">
<div style="float: left; margin-right: 10px;">My Approvals</div>
<!-- Handle notifications here -->
<div style="overflow: hidden" id="circle">1</div>
</a>
</div>
</li>
<li><a href="#" th:href="@{/team}">My Team</a></li>
<!-- Is logged in, so don't show "Log In" -->
<li th:unless="${currentRole}">
<a href="/login" th:href="@{/login}" class="btn-login">Log In</a>
</li>
</ul>

最佳答案

如果您使用的是 Spring 安全性,Thymeleaf 有一个集成模块可以直接在您的模板中处理此问题,因此您甚至可能不需要模型中的用户名。将依赖项添加到适当版本的 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>

有关 Spring Security Integration module 的更多信息

关于java - Springboot/Thymeleaf 在每个页面上从模型中检查当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42123841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com