У нас есть реализация на стороне сервера websocket с использованием весны 4. Она была настроена на использование весенней безопасности для auth/authz. На стороне клиента мы используем sockJS, который отлично работает, когда клиент находится в том же домене, что и сервер.SockJS не передает учетную информацию в другом домене (CORS)
Позвони WebSocket производится таким образом ...
гнездо = новый SockJS ("http://guest:[email protected]/MyWebSocketApp/tracker")
В конечном итоге это делает вызов http://guest:[email protected]/MyWebSocketApp/tracker/info решить транспортный использовать. Все это хорошо.
Однако при использовании клиента из другого домена я вижу, что учетные данные удаляются. Таким образом, когда этот клиент находится в другом домене, я вижу, что сделанный звонок: http://myinterestingdomain.com/MyWebSocketApp/tracker/info. Я не вижу, как передаются учетные данные. Из-за этого я получаю ошибку 401 (несанкционированный). Мы имеем конфигурацию CORS на стороне сервера, а также:
Access-Control-Allow-Credentials «истинный»
Может кто-то пожалуйста, помогите мне, я из вариантов, и я не понимаю, почему? учетные данные становятся раздели? может ли это быть связано с CORS?
Большое спасибо за предоставление предложения , Он многое разъясняет. Таким образом, похоже, что для завершения работы в конце концов нам придется ждать исправления от сообщества SockJS. Правильно ли я понимаю? Между тем, мы решили использовать «чистую» поддержку Spring's Spring. Это означает удаление метода .withSockJS() из приложения WebSocketConfigurer. Мы проверили, что он отлично работает при использовании чистых веб-узлов на основе Java. Существует ли обходное решение для клиентов браузера (с использованием чистой websocket JS) для передачи учетных данных в домене? – myspri