У меня есть приложение микро-услуг, где мне нужно использовать WebSockets для одной из функций.Браузер подключается к шлюзу API, который затем должен перенаправить запрос WebSocket в соответствующий микросервис.Для реализации этого в шлюзе API используется Spring * StandardWebSocketClient
.Шлюз API действует как прокси-сервер для запросов WebSocket.
Мое приложение использует OAuth для аутентификации, поэтому, когда запрос WebSocket проксируется в шлюзе API, мне также необходимо передать токен OAuth2.Когда StandardWebSocketClient
выдает запрос CONNECT
с использованием Tomcat, я получаю BufferOverflowException
, потому что токен носителя, похоже, не помещается в буфер, используемый Tomcat.
При просмотре исходного кода Tomcatразмер буфера, по-видимому, ограничен 4096 байтами.См .: https://github.com/apache/tomcat/blob/8fd5d6273099c504e1739080c07cf4d33cff89bf/java/org/apache/tomcat/websocket/WsWebSocketContainer.java#L717
Есть ли обходной путь, чтобы как-то преодолеть это ограничение?