Ошибка CORS при проксировании веб-сокетов при весенней загрузке с nginx - PullRequest
0 голосов
/ 28 января 2020

пытается прокси-соединения веб-сокета в приложении весенней загрузки с nginx с конфигурацией (без nginx все работает нормально)

server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}

, однако появляется следующая ошибка js:

WebSocket connection to 'ws://localhost/gs-guide-websocket/776/ybicrrun/websocket' failed: Error during WebSocket handshake: Unexpected response code: 403

spring:

o.s.web.cors.DefaultCorsProcessor        : Reject: 'http://localhost' origin is not allowed
o.s.web.servlet.DispatcherServlet        : Completed 403 FORBIDDEN, headers={masked}

Как правильно подключаться к прокси-сокету?

1 Ответ

0 голосов
/ 28 января 2020

нашел один способ настроить допустимый источник весной :

import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(myHandler(), "/gs-guide-websocket").setAllowedOrigins("http://localhost");
    }

    @Bean
    public WebSocketHandler myHandler() {
        return new MyHandler();
    }

}

все еще думаю, что это неправильный способ, ищите, как это исправить на nginx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...