spring-boot整合spring-security和thymeleaf

在controler中获取用户名信息

Spring会自动注入Principal,通过principal可以可以获取到登录用户的用户名:

@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整合的时候还有一些问题。

比如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]

stackoverflow上面的一些答案以及README.md中提到要注册SpringTemplateEngine,在现在的最新Spring-Boot1.5.3下面这段代码这是没有必要的,Spring-Boot会实现自动注入。

    @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支持,以实现自动补全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值