Как программно включить WSS для Tyrus WebSocket @ServerEndpoint - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть микросервис с конечной точкой REST и конечной точкой WebSocket.

Он подпружиняет Grizzly и Tyrus и добавляет аутентификацию через SSO с использованием фильтра JAX-RS и ServerEndpointConfig.Configurator.Я добавил в SSL к конечной точке REST, используя SSLContextConfigurator и SSLEngineConfigurator и (в настоящее время) самозаверяющий сертификат.

Я не вижу способа сделать то же самое для org.glassfish.tyrus.server.Server в Tyrus 1.14.

На самом деле код передает название протокола, что заставляет меня задуматься, возможно ли это вообще:

LOGGER.info("WebSocket Registered apps: URLs all start with ws://" + this.hostName + ":" + this.getPort());

Здесь есть похожий вопрос здесь но для этого требуется развернуть файл WAR на полноценном экземпляре Glassfish.Я хочу сделать это программно.

1 Ответ

0 голосов
/ 20 декабря 2018

Решено с использованием предложения в https://stackoverflow.com/a/27239122/17641

listener = new NetworkListener("grizzly", "0.0.0.0", port); listener.setSecure(true); listener.setSSLEngineConfig(new SSLEngineConfigurator(getSslContextConfigurator()).setClientMode(false).setNeedClientAuth(false));

Где getSslContextConfigurator создает org.glassfish.grizzly.ssl.SSLContextConfigurator с байтом хранилища ключей [] и паролем.

...