Allow same-origin WebSocket/SockJS requests once origin is set
Issue: SPR-13464
This commit is contained in:
@@ -93,7 +93,7 @@ public class OriginHandshakeInterceptor implements HandshakeInterceptor {
|
||||
@Override
|
||||
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
|
||||
WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
|
||||
if (!WebUtils.isValidOrigin(request, this.allowedOrigins)) {
|
||||
if (!WebUtils.isSameOrigin(request) && !WebUtils.isValidOrigin(request, this.allowedOrigins)) {
|
||||
response.setStatusCode(HttpStatus.FORBIDDEN);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Handshake request rejected, Origin header value "
|
||||
|
||||
@@ -448,13 +448,12 @@ public abstract class AbstractSockJsService implements SockJsService, CorsConfig
|
||||
protected boolean checkOrigin(ServerHttpRequest request, ServerHttpResponse response,
|
||||
HttpMethod... httpMethods) throws IOException {
|
||||
|
||||
String origin = request.getHeaders().getOrigin();
|
||||
|
||||
if (origin == null) {
|
||||
if (WebUtils.isSameOrigin(request)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!WebUtils.isValidOrigin(request, this.allowedOrigins)) {
|
||||
String origin = request.getHeaders().getOrigin();
|
||||
logger.debug("Request rejected, Origin header value " + origin + " not allowed");
|
||||
response.setStatusCode(HttpStatus.FORBIDDEN);
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user