Я настроил шлюз с серверами веб-сокетов с балансировкой нагрузки 2.
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
//@formatter:off
return builder.routes()
.route("ws", r -> r.path("/ws/**")
.uri("lb://chat-service"))
.build();
//@formatter:on
}
Приложение защищено сервером JWt.
@Bean
SecurityWebFilterChain springWebFilterChain(ServerHttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeExchange()
.anyExchange().authenticated()
.and()
.oauth2ResourceServer()
.jwt();
// @formatter:on
return http.build();
}
Можем ли мы подтвердить подлинность рукопожатия через веб-сокет, который является запросом на обновление HTTP.Таким образом, запрос будет выглядеть так:
ws: // localhost: 8080 / ws / echo? Token = xxxx
Как я уже видел, GatewayFilter будет тем, чем я будунужно, но я не совсем понял, как это сделать.Любой альтернативный способ будет полезен.
спасибо.
Версия для весенней загрузки: 2.1.4.RELEASE
Версия для весеннего облака: Greenwich.RELEASE