Существует такой ChannelInterceptor
с методом preSend
:
@Override
public Message <?> preSend (Message <?> message, MessageChannel channel) {
LOGGER.info ("WEBSOCKETCHANNELINTERCEPTOR ->" + message.toString ());
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor (message, StompHeaderAccessor.class);
if (accessor! = null && StompCommand.CONNECT.equals (accessor.getCommand ())) {
List <String> headers = accessor.getNativeHeader (AUTHORIZATION);
accessor.setUser (websocketAuthenticationManager.authenticate (new JWTTokenAuthentication (tokenUtils.resolveToken (headers! = null? headers.get (0): null))));
}
return message;
}
В случае любой ошибки с CONNECT
я хочу отключить пользователя от веб-сокета.как это сделать?