spring mvc中可以这样拿到request
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attrs.getRequest();
那么 请问如何在gateway 中获取 webflux的 request 或其上下文.
我其实想在spring gateway中调用子组件的一个reset方法(但需要当前请求的header),在zuul中可以这样把header传递出去.但用了gateway就不知道如何操作了.
@Component
public class SecuringRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String values = request.getHeader(name);
requestTemplate.header(name, values);
}
}
}
}
换 WebClient,亲测好用,可以的话帮我 #mica# 码云点个 star 哦~
#mica#里实现了这个功能,你可以参考:https://gitee.com/596392912/mica/tree/master/mica-boot/src/main/java/net/dreamlu/mica/reactive/context
使用:https://gitee.com/596392912/mica/blob/master/mica-boot/src/main/java/net/dreamlu/mica/reactive/error/MicaExceptionTranslator.java#L60
引用来自“如梦技术”的评论
#mica#里实现了这个功能,你可以参考:https://gitee.com/596392912/mica/tree/master/mica-boot/src/main/java/net/dreamlu/mica/reactive/context
使用:https://gitee.com/596392912/mica/blob/master/mica-boot/src/main/java/net/dreamlu/mica/reactive/error/MicaExceptionTranslator.java#L60
非常感谢!但我还是有个疑问:
如何将mono的header信息放到 新的RequestTemplate里面去呢?
亲,gateway 中获取 webflux的 request 或其上下文,结果是怎么处理啊。
请问作者,这个问题最后是如何解决的呢,我现在也遇到这个问题