Disable ShallowEtagHeaderFilter for HTTP streaming
Issue: SPR-12960
This commit is contained in:
@@ -26,10 +26,14 @@ import java.util.Map;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
import javax.servlet.ServletRequest;
|
||||
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.server.ServerHttpAsyncRequestControl;
|
||||
import org.springframework.http.server.ServerHttpRequest;
|
||||
import org.springframework.http.server.ServerHttpResponse;
|
||||
import org.springframework.http.server.ServletServerHttpRequest;
|
||||
import org.springframework.web.filter.ShallowEtagHeaderFilter;
|
||||
import org.springframework.web.socket.CloseStatus;
|
||||
import org.springframework.web.socket.WebSocketExtension;
|
||||
import org.springframework.web.socket.WebSocketHandler;
|
||||
@@ -202,6 +206,8 @@ public abstract class AbstractHttpSockJsSession extends AbstractSockJsSession {
|
||||
this.asyncRequestControl = request.getAsyncRequestControl(response);
|
||||
this.asyncRequestControl.start(-1);
|
||||
|
||||
disableShallowEtagHeaderFilter(request);
|
||||
|
||||
// Let "our" handler know before sending the open frame to the remote handler
|
||||
delegateConnectionEstablished();
|
||||
|
||||
@@ -243,6 +249,8 @@ public abstract class AbstractHttpSockJsSession extends AbstractSockJsSession {
|
||||
this.asyncRequestControl = request.getAsyncRequestControl(response);
|
||||
this.asyncRequestControl.start(-1);
|
||||
|
||||
disableShallowEtagHeaderFilter(request);
|
||||
|
||||
handleRequestInternal(request, response, false);
|
||||
this.readyToSend = isActive();
|
||||
}
|
||||
@@ -253,6 +261,13 @@ public abstract class AbstractHttpSockJsSession extends AbstractSockJsSession {
|
||||
}
|
||||
}
|
||||
|
||||
private void disableShallowEtagHeaderFilter(ServerHttpRequest request) {
|
||||
if (request instanceof ServletServerHttpRequest) {
|
||||
ServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest();
|
||||
ShallowEtagHeaderFilter.disableContentCaching(servletRequest);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoked when a SockJS transport request is received.
|
||||
* @param request the current request
|
||||
|
||||
Reference in New Issue
Block a user