Merge branch '5.1.x'
This commit is contained in:
@@ -267,9 +267,19 @@ public class StompSubProtocolHandler implements SubProtocolHandler, ApplicationE
|
||||
MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
|
||||
Assert.state(headerAccessor != null, "No StompHeaderAccessor");
|
||||
|
||||
StompCommand command = headerAccessor.getCommand();
|
||||
boolean isConnect = StompCommand.CONNECT.equals(command) || StompCommand.STOMP.equals(command);
|
||||
|
||||
headerAccessor.setSessionId(session.getId());
|
||||
headerAccessor.setSessionAttributes(session.getAttributes());
|
||||
headerAccessor.setUser(getUser(session));
|
||||
if (isConnect) {
|
||||
headerAccessor.setUserChangeCallback(user -> {
|
||||
if (user != null && user != session.getPrincipal()) {
|
||||
this.stompAuthentications.put(session.getId(), user);
|
||||
}
|
||||
});
|
||||
}
|
||||
headerAccessor.setHeader(SimpMessageHeaderAccessor.HEART_BEAT_HEADER, headerAccessor.getHeartbeat());
|
||||
if (!detectImmutableMessageInterceptor(outputChannel)) {
|
||||
headerAccessor.setImmutable();
|
||||
@@ -279,8 +289,6 @@ public class StompSubProtocolHandler implements SubProtocolHandler, ApplicationE
|
||||
logger.trace("From client: " + headerAccessor.getShortLogMessage(message.getPayload()));
|
||||
}
|
||||
|
||||
StompCommand command = headerAccessor.getCommand();
|
||||
boolean isConnect = StompCommand.CONNECT.equals(command) || StompCommand.STOMP.equals(command);
|
||||
if (isConnect) {
|
||||
this.stats.incrementConnectCount();
|
||||
}
|
||||
@@ -293,12 +301,6 @@ public class StompSubProtocolHandler implements SubProtocolHandler, ApplicationE
|
||||
boolean sent = outputChannel.send(message);
|
||||
|
||||
if (sent) {
|
||||
if (isConnect) {
|
||||
Principal user = headerAccessor.getUser();
|
||||
if (user != null && user != session.getPrincipal()) {
|
||||
this.stompAuthentications.put(session.getId(), user);
|
||||
}
|
||||
}
|
||||
if (this.eventPublisher != null) {
|
||||
Principal user = getUser(session);
|
||||
if (isConnect) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -166,7 +166,6 @@ public class WebSocketHttpRequestHandler implements HttpRequestHandler, Lifecycl
|
||||
}
|
||||
this.handshakeHandler.doHandshake(request, response, this.wsHandler, attributes);
|
||||
chain.applyAfterHandshake(request, response, null);
|
||||
response.close();
|
||||
}
|
||||
catch (HandshakeFailureException ex) {
|
||||
failure = ex;
|
||||
@@ -177,8 +176,10 @@ public class WebSocketHttpRequestHandler implements HttpRequestHandler, Lifecycl
|
||||
finally {
|
||||
if (failure != null) {
|
||||
chain.applyAfterHandshake(request, response, failure);
|
||||
response.close();
|
||||
throw failure;
|
||||
}
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user