Как обрабатывать конфигурацию CORS шлюза API и сокета в микросервисах SpringbootJAVA

Программисты JAVA общаются здесь
Anonymous
Как обрабатывать конфигурацию CORS шлюза API и сокета в микросервисах Springboot

Сообщение Anonymous »

У меня есть микросервисное приложение Spring Boot. В моем приложении есть 4 микросервиса.

Код: Выделить всё

API-gateway,
user-management,
idm-service,
engine-service.
Здесь я использую реакцию в качестве интерфейса.
API-шлюз содержит конфигурацию, связанную с CORS, и я использую веб-сокет для своего движка-сервиса, поэтому у него есть конфигурация веб-сокета.
Я столкнулся с проблемой при общении с сокетом службы Engine.
Когда я пытаюсь инициировать соединение сокета из реакции. Сначала он перейдет в API-шлюз, поэтому мне нужно добавить необходимую конфигурацию CORS в API-шлюз.
Конфигурация API-шлюза:

Код: Выделить всё

cors-configurations:
'[/**]':
allowCredentials: true
allowedOrigins:
- "http://localhost:3000"
allowedHeaders: "*"
allowedMethods:
- GET
- POST
- DELETE
- PUT
- OPTIONS
- PATCH
Мне нужно добавить параметрallowCredentials: true, чтобы разрешить подключение к веб-сокету, и все работает нормально.
engine-service конфигурация сокета:

Код: Выделить всё

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint(registryEndpoint).setAllowedOrigins("http://localhost:3000").withSockJS();
}
Теперь мне снова нужно добавить setAllowedOrigins в конфигурацию веб-сокета. поэтому, когда запрос поступает в службу Engine, я получаю такую ​​ошибку

Код: Выделить всё

The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:3000, http://localhost:3000', but only one is allowed.
Теперь я не могу найти решение этой проблемы. Весь запрос должен проходить через API-шлюз, поэтому мне нужно добавить туда конфигурацию CORS, иначе я получу ошибку CORS в API-шлюзе. Если я добавляю setAllowedOrigins в API-шлюз, я получаю сообщение об ошибке в сервисе Engine.
Можете ли вы объяснить мне эту ошибку?
Для подключения через веб-сокет: Должен ли я напрямую взаимодействовать с движком-сервисом, а не через API-шлюз?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ot-microse

Вернуться в «JAVA»