Bry*_*ñez 2 java spring spring-mvc spring-boot netflix-zuul
有可能增加一个HandlerInterceptorAdapter与Zuul配置.我需要拦截对特定资源的请求,但我想因为我有Zuul过滤器配置,所以从不调用拦截器.
有可能吗?
ahi*_*end 10
我试图实现同样的目标.我们有一些Spring MVC控制器和Zuul代理.但我仍然希望使用相同的拦截器.
这里的问题是zuul在自己的ZuulServlet中运行,并且不会从你的MVC servlet中获取拦截器.Spring Cloud:ZuulConfiguration.java配置ZuulHandlerMapping,这是唯一可以设置拦截器的地方,但它不可配置.因此,您需要InstantiationAwareBeanPostProcessorAdapter干扰bean的创建,在实例化之后但在初始化之前(在初始化拦截器之前)设置拦截器.
这对我有用:
@Configuration
@RequiredArgsConstructor
public class ZuulHandlerBeanPostProcessor extends InstantiationAwareBeanPostProcessorAdapter {
@NonNull
private final MyInterceptor myInterceptor;
@Override
public boolean postProcessAfterInstantiation(final Object bean, final String beanName) throws BeansException {
if (bean instanceof ZuulHandlerMapping) {
val zuulHandlerMapping = (ZuulHandlerMapping) bean;
zuulHandlerMapping.setInterceptors(myInterceptor);
}
return super.postProcessAfterInstantiation(bean, beanName);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1773 次 |
| 最近记录: |