内容简介:翻译自:https://stackoverflow.com/questions/46446115/spring-boot-how-to-add-interceptors-to-static-resources
我在/ static / img / **中有几个文件夹,我需要在其中一些文件夹中添加拦截器来检查用户权限.我之前使用过拦截器并以这种方式添加它们:
@SpringBootApplication @EnableTransactionManagement public class Application extends WebMvcConfigurerAdapter { ... @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry .addResourceHandler("/static/**") .addResourceLocations("classpath:/static/"); } @Bean public AuthHeaderInterceptor authHeaderInterceptor() { return new AuthHeaderInterceptor(); } @Bean public AuthCookieInterceptor authCookieInterceptor() { return new AuthCookieInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { registry .addInterceptor(authHeaderInterceptor()) .addPathPatterns(REST_URL) .excludePathPatterns( new String[] { REST_SECURITY_URL, REST_SETTINGS_URL, REST_REPORTS_URL } ); registry .addInterceptor(authCookieInterceptor()) .addPathPatterns(REST_REPORTS_URL); } }
一切都适用于休息控制器及其URL,但现在我需要保护一些静态资源,我添加了这个:
@SpringBootApplication @EnableTransactionManagement public class Application extends WebMvcConfigurerAdapter { ... @Bean public RoleAdminInterceptor roleAdminInterceptor() { return new RoleAdminInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { registry .addInterceptor(authHeaderInterceptor()) .addPathPatterns(REST_URL) .excludePathPatterns( new String[] { REST_SECURITY_URL, REST_SETTINGS_URL, REST_REPORTS_URL } ); //THIS NOT WORK registry .addInterceptor(roleAdminInterceptor()) .addPathPatterns("/static/img/admin/**"); registry .addInterceptor(authCookieInterceptor()) .addPathPatterns(REST_REPORTS_URL); } }
注释行不起作用.当我向/static/img/admin/test.png发送请求时,从不调用RoleAdminInterceptor.
我做错了什么?
我认为在这种情况下你可以使用带有Spring安全性的过滤器而不是拦截器,因为你可以在点击拦截器之前验证进程早期的访问,除非你有一个特定的用例需要在这里使用拦截器.
关于这两者之间的区别的一些主题:
filters-vs-interceptor翻译自:https://stackoverflow.com/questions/46446115/spring-boot-how-to-add-interceptors-to-static-resources
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 前端架构之vue+axios 前端实现登录拦截(路由拦截、http拦截)
- react离开页面,自定义弹框拦截,路由拦截
- Springboot整合Hibernate拦截器时无法向拦截器注入Bean
- 基于原生fetch封装一个带有拦截器功能的fetch,类似axios的拦截器
- SpringMVC拦截器
- IOS 拦截器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Design systems
Not all design systems are equally effective. Some can generate coherent user experiences, others produce confusing patchwork designs. Some inspire teams to contribute to them, others are neglected. S......一起来看看 《Design systems》 这本书的介绍吧!