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连接传递给您的服务器