Handles DataBufferWrapper

This commit is contained in:
Spencer Gibb
2020-01-24 17:35:27 -05:00
parent bc3841ce1b
commit 7459be61bd

View File

@@ -40,6 +40,7 @@ import org.springframework.cloud.gateway.route.Route;
import org.springframework.cloud.gateway.support.TimeoutException;
import org.springframework.core.Ordered;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DataBufferWrapper;
import org.springframework.core.io.buffer.DefaultDataBuffer;
import org.springframework.core.io.buffer.NettyDataBuffer;
import org.springframework.http.HttpHeaders;
@@ -215,6 +216,10 @@ public class NettyRoutingFilter implements GlobalFilter, Ordered {
DefaultDataBuffer buffer = (DefaultDataBuffer) dataBuffer;
return Unpooled.wrappedBuffer(buffer.getNativeBuffer());
}
else if (dataBuffer instanceof DataBufferWrapper) {
DataBufferWrapper wrapper = (DataBufferWrapper) dataBuffer;
return Unpooled.wrappedBuffer(wrapper.asByteBuffer());
}
throw new IllegalArgumentException(
"Unable to handle DataBuffer of type " + dataBuffer.getClass());
}