Spring
会自动注入Principal
,经过principal
能够能够获取到登陆用户的用户名:html
@Controller public class MockController { @GetMapping(value="/mock") public String mock(ModelMap model, Principal principal ) { String name = principal.getName(); //get logged in username return "mock"; } }
这里咱们使用官网推荐的thymeleaf-extras-springsecurity。README.md
给出了详细的教程,可是都是基于Spring-MVC
的,在和Spring-Boot
整合的时候还有一些问题。java
好比StackOverflow中这个问题上面提到的Spring-Boot
如今的最新版的Thymeleaf Extras for Spring Security 4
并不支持3.x.x,所以只能使用2.x.x。p.s: Spring-Boot1.5.3
默认加载的版本是~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
。git
stackoverflow上面的一些答案以及README.md中提到要注册SpringTemplateEngine
,在如今的最新Spring-Boot1.5.3
下面这段代码这是没有必要的,Spring-Boot
会实现自动注入。github
@Bean public SpringTemplateEngine templateEngine(TemplateResolver templateResolver, SpringSecurityDialect sec) { final SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver); templateEngine.addDialect(sec); // Enable use of "sec" return templateEngine; }
p.s: 若是使用intellij-idea的话,参考官网文档能够在Add Framework
中添加thymeleaf
支持,以实现自动补全。spring