spring-boot整合spring-security和thymeleaf

在controler中获取用户名信息

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";

  }
}

在template中获取登陆用户的信息

这里咱们使用官网推荐的thymeleaf-extras-springsecurityREADME.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

相关文章
相关标签/搜索