主题:关于在beetl中使用spring security

pankun 2020年06月02日 49

问下大神,怎么在beetl模板文件中使用freemaker里类似,

<@security.authorizeifAnyGranted="ROLE_ADMIN">
的标签。

闲大赋 2020年06月12日

spring的securiy信息都可以通过SechrityContextHolder获取,因此,你可以实现一个自己的html 标签,从SechrityContextHolder获取角色列表,并比较authorizeifAnyGranted的值

  • pankun :恩,不过自己是个小白,光看文档不知道怎么实现,百度上的参考资源又太少。(2020年06月24日)
闲大赋 2020年06月24日

SechrityContextHolder是个静态类,你在beetl标签里直接获取他提供当前用户的角色信息,你如果能用java写beetl标签,比如security.authorizeifAnyGranted ,那么你在标签调用SecurityContextHolder.getContext().getAuthentication(),就能获取用户信息,Authentication有多个实现方式,必然能取到用户角色,在跟标签期望的角色匹配一下就行了