如何通过编程方式启用Tyrus Websocket @ServerendPoint的WSS



i有一个微服务,该微服务具有休息点和一个websocket端点。

它弹出灰熊和蒂鲁斯,并使用jax-rs滤镜和serverendpointconfig.configurator通过SSO进行身份验证。我使用sslContextConfigurator和sslengineconfigurator和(当前)自签名证书中的SSL添加到了其余端点。

我看不到在Tyrus 1.14中为org.glassfish.tyrus.server.Server做同样的方法。

实际上,代码硬件是协议名称,这使我想知道这是否可能是可能的:

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

这里也有一个类似的问题,但是它需要将战争文件部署到全面的玻璃鱼实例。我想通过编程方式执行此操作。

使用该建议在https://stackoverflow.com/a/2723912/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

我设法使用上述变体来实现此工作。但是,我强烈建议这样做,因为表现很糟糕。这与Tyrus或Grizzly无关,而与Java无关。Java中的SSL库众所周知,由于灰熊使用Java,因此任何WSS都会受到影响。

显然,Jetty和Tomcat提供了一种使用OPENSL而不是标准Java SSL的方法。另外,请使用处理SSL并将标准WS连接传递给您的服务器

的SSL终结器(例如Apache Web服务器或Haproxy)

相关内容

  • 没有找到相关文章

最新更新