在 Thymeleaf 中根据 SpringSecurity 用户名创建 URL

Create a URL based on SpringSecurity username in Thymeleaf

使用 Thymeleaf SpringSecurityDialect,我可以像这样显示登录用户的用户名:

Logged in user<span sec:authentication="name">Username</span>

我想更进一步,使用该登录用户名生成 URL。

<a href="view.html" th:href="@{'/view/'+${user.username}}" />

到目前为止,我一直是通过将其直接添加到模型中来做到这一点的,但是我想知道是否可以仅使用 SecurityDialect 和标签直接执行此操作。

例如,在 JSP 中,将其添加到 pagecontext var 中是微不足道的。

<sec:authentication var="user" property="principal" />

但是,我想知道我是否可以选择在 thymeleaf 中做这样的事情。

您尝试过使用 ${#authentication.name} 代替 ${user.username} 吗?它应该工作...

<a href="view.html" th:href="@{'/view/'+${#authentication.name}}" >TEST</a>

You can find variety of examples here