gpt4 book ai didi

spring-boot - 升级 Spring 和 thymeleaf 打破了我的授权

转载 作者:行者123 更新时间:2023-12-03 17:15:28 26 4
gpt4 key购买 nike

我正在将我的 Spring Boot 应用程序从 1.3.5 升级到 1.4.4(最终是 1.5.x),我注意到我的 Thymeleaf 菜单项现在坏了。
这是我如何拥有它们:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

...
<ul class="nav pull-right">
<li sec:authorize="${!isAuthenticated()}">
<div>
<span></span>
</div>
</li>
<li sec:authorize="${isAuthenticated()}">
<span th:inline="text">Logged in as [[${#httpServletRequest.remoteUser}]</span>
</li>
</ul>

然后我进行了以下更改
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile('org.thymeleaf.extras:thymeleaf-extras-springsecurity4:2.1.2.RELEASE')


compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '1.4.4.RELEASE'
compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity4', version: '3.0.2.RELEASE'
compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.9.RELEASE'

但是,授权元素的显示好像绕过了安全性。 sec:authorize 是否以相同的方式工作?我查看了 Thymeleaf 文档,但没有看到。我知道接受身份验证的用户具有正确的角色并且已经过身份验证。

更新 :

对于它的值(value),我尝试将 bootstrap 和 jquery 版本更新为:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"/>
<script src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

并在我的 html 中有这个
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"

但这仍然不能解决显示错误项目的问题。

最佳答案

试试 sec:authorize="isAuthenticated()"而不是 sec:authorize="${isAuthenticated()}"
Spring Boot 1.x 使用 thymeleaf 2,SB 2.x 使用 thymeleaf 3。

如果要将 thymeleaf 3 与 SB 1.x 一起使用,则需要进行其他配置:https://github.com/spring-projects/spring-boot/issues/4393

关于spring-boot - 升级 Spring 和 thymeleaf 打破了我的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48919373/

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