java – 如何在所有模板中显示当前登录用户的信息,包括Spring Security应用程序中由WebMvcConfigurerAdapter管理的视图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何在所有模板中显示当前登录用户的信息,包括Spring Security应用程序中由WebMvcConfigurerAdapter管理的视图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1807字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何在所有模板中显示当前登录用户的信息,包括Spring Security应用程序中由WebMvcConfigurerAdapter管理的视图](/upload/InfoBanner/zyjiaocheng/765/6a6904088824472cb361414dc97f0c7b.jpg)
我有一个使用Spring Security和Thymeleaf模板的Spring Boot应用程序.当控制器由WebConfigurerAdapter的子类管理时,我试图在模板中显示登录用户的名字和姓氏.
所以,假设我的WebConfigurerAdapter子类看起来像这样
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter{
@Override
public void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/some-logged-in-page").setViewName("some-logged-in-page");
registry.addViewController("/login").setViewName("login");
}
....
}
我的用户实体类看起来像这样
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, updatable = false)
private Long id;
@Column(name="first_name", nullable = false)
private String firstName;
public String getFirstName() {
return firstName;
}
...
}
在我的模板中,我尝试使用类似的代码
<div sec:authentication="firstName"></div>
但它没有用.
我知道可以使用ControllerAdvise,如下所示:
@ControllerAdvice
public class CurrentUserControllerAdvice {
@ModelAttribute("currentUser")
public UserDetails getCurrentUser(Authentication authentication) {
return (authentication == null) ? null : (UserDetails) authentication.getPrincipal();
}
}
然后使用以下代码访问模板中的详细信息:
<span th:text ="${currentUser.getUser().getFirstName()}"></span>
但这不适用于在我的班级MvcConfig中注册的任何视图控制器.相反,我需要确保每个控制器都是单独的类.
那么,有人可以指出我自动将登录用户详细信息插入我的视图的方法,例如在这个例子中,some-logged-in-page.html?谢谢
解决方法:
由于Balaji Krishnan的暗示,这很容易实现.
基本上,我必须将Thymeleaf Spring Security集成模块添加到我的build.gradle文件中,如下所示:
compile("org.thymeleaf.extras:thymeleaf-extras-springsecurity3")
然后在我的模板中我使用了以下标记:
<span th:text ="${#authentication.getPrincipal().getUser().getFirstName()}"></span>
内容总结
以上是互联网集市为您收集整理的java – 如何在所有模板中显示当前登录用户的信息,包括Spring Security应用程序中由WebMvcConfigurerAdapter管理的视图全部内容,希望文章能够帮你解决java – 如何在所有模板中显示当前登录用户的信息,包括Spring Security应用程序中由WebMvcConfigurerAdapter管理的视图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。