Неверное значение Spring 'Sec-WebSocket-Accept'

При подключении к WebSocket из моего интерфейса (с использованием Stomp для Dart):

client = await connect(uri);

Клиент отправляет этот ключ в заголовке:

Sec-WebSocket-Key: ydWCNEacB1ZqiHCH1Ip+vo4mhOw=

И получает ключ от Spring WebSocket:

Sec-WebSocket-Accept: KVqExHty0Y5/fze11/EAhg==

Это заставляет клиента бросать:

WebSocket connection to 'ws://user:pass@localhost:8080/ws' failed: Error during WebSocket handshake: Incorrect 'Sec-WebSocket-Accept' header value

Я не знаю, как рассчитать правильный ответ. Но в любом случае клиент по какой-то причине его не принимает.

Как мне подойти к этой проблеме? Что могло быть причиной проблемы и как ее решить?

Спасибо


Обновлено: добавлена ​​конфигурация веб-сокета:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {


@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
    registry.setApplicationDestinationPrefixes("/app").enableSimpleBroker("/topic");
}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/ws").setAllowedOrigins("*");
    registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
    }
}

Также

@Configuration
public class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer {

@Override
protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) {
    messages.anyMessage().authenticated();
    }
}

Обновлено: я нашел вики, в которой описывается, как вычислить Sec-WebSocket-Key. Следуя приведенному ниже руководству, похоже, что ключ неверный. Хотя это маловероятно, или проблемы могут возникнуть у многих других. https://en.wikipedia.org/wiki/WebSocket

Сначала покажите свой код, а потом мы вместе разберемся, в чем проблема.

Abdelghani Roussi 14.11.2018 14:43

Это небольшая проблема. Это большой проект, и я понятия не имею, в чем проблема. Что касается внешнего интерфейса, то единственной важной частью должна быть часть connect (...), указанная выше.

GreyScreenOfMeh 14.11.2018 14:44

покажите нам конфигурацию вашего сервера webSocket

Abdelghani Roussi 14.11.2018 14:46

Отредактировано сообщение для добавления config.

GreyScreenOfMeh 14.11.2018 14:49
0
4
479
0

Другие вопросы по теме