ssl - 如何以编程方式为 Tyrus WebSocket @ServerEndpoint 启用 WSS

标签 ssl websocket server tyrus

我有一个具有 REST 端点和 WebSocket 端点的微服务。

它使用 Spring 连接 Grizzly 和 Tyrus,并使用 JAX-RS 过滤器和 ServerEndpointConfig.Configurator 通过 SSO 添加身份验证。我已使用 SSLContextConfigurator 和 SSLEngineConfigurator 以及(当前)自签名证书将 SSL 添加到 REST 端点。

我没有看到在 Tyrus 1.14 中对 org.glassfish.tyrus.server.Server 执行相同操作的方法。

事实上,代码硬连接了协议(protocol)名称,这让我想知道这是否可能:

LOGGER.info("WebSocket 注册的应用程序:URL 都以 ws://"+ this.hostName + ":"+ this.getPort());

有个类似的问题here但它需要将 WAR 文件部署到完整的 Glassfish 实例。我想以编程方式执行此操作。

最佳答案

使用 https://stackoverflow.com/a/27239122/17641 中的建议解决了

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

其中 getSslContextConfigurator 使用 keystore byte[] 和密码构造一个 org.glassfish.grizzly.ssl.SSLContextConfigurator

关于ssl - 如何以编程方式为 Tyrus WebSocket @ServerEndpoint 启用 WSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53849572/

相关文章:

google-chrome - 让 Chrome 接受自签名本地主机证书

java - 在WebsocketAdapter中获取ServletMapping [Jetty]

ios - 如何使用 swifter 设置服务器?

ssl - 尝试使用客户端证书时解决 sslv3 警报握手失败

.htaccess - 如何通过 htaccess 将 www 重定向到 http

html - 通过Qt websocket发送opencv Mat图像到HTML客户端

java - 如何在java spring websocket中实现ping pong

ios - 如何在本地计算机或 AWS/第 3 方托管站点上托管 Realm 服务器?

ssl - https 不适用于我安装的 ssl(nginx 和 letsencrypt)

windows-7 - 如何在 Windows 7 上使用 Python 3 和 httplib2 调用 AWS?