Spring boot Security在Freemarker 使用assign security=JspTaglibs控制菜单按钮

添加pom.xml

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-taglibs</artifactId>
		</dependency>
 
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.2.1-b03</version>
		</dependency>

然后刷新一下maven,在jar包中找到资源,复制一份到static下面,路径自拟,一会程序定位就行了

然后写一个配置,继承WebMvcConfigurer接口,然后使用@PostConstruct初始化一下

(附个小知识点: 被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法执行执行之后执行)

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
     @Autowired
    private FreeMarkerConfigurer configurer;

     @PostConstruct
    public void freeMarkerConfigurer() {
        List<String> tal = new ArrayList<>();
        tal.add("/static/tags/security.tld");
        TaglibFactory taglibFactory = configurer.getTaglibFactory();
        taglibFactory.setClasspathTlds(tal);
        if(taglibFactory.getObjectWrapper() == null) {
            taglibFactory.setObjectWrapper(configurer.getConfiguration().getObjectWrapper());
        }
    }
    //接口其他实现方法略,毕竟不能跑题
}

然后在页面中就可以使用了,在ftl页面顶部添加

<#assign security=JspTaglibs["http://www.springframework.org/security/tags"]/>

在页面中使用判断是该内容否出现

<@security.authorize access="hasRole('admin')">
   admin will see
</@security.authorize>
<@security.authorize access="hasRole('normal')">
   normal will see
</@security.authorize>

参考文章:

SpringBoot+SpringSecurity+Freemarker页面中使用security标签

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值