版权声明:版权??? 版权.... 版权!!! 什么样的事要说三遍 https://blog.csdn.net/qq_16513911/article/details/86503794
添加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>
参考文章: