我有一个具有REST端点和WebSocket端点的微服务。
它弹跳式连接Grizzly和Tyrus,并使用JAX-RS过滤器和ServerEndpointConfig.Configurator通过SSO添加身份验证。我已经使用SSLContextConfigurator和SSLEngineConfigurator和(当前)自签名证书将SSL添加到REST端点。
在Tyrus 1.14中,我没有找到对org.glassfish.tyrus.server.Server
进行相同操作的方法。
实际上,该代码对协议名称进行了严格的布线,这使我想知道这是否可能:LOGGER.info("WebSocket Registered apps: URLs all start with ws://" + this.hostName + ":" + this.getPort());
有一个类似的问题here,但是它需要将WAR文件部署到完整的Glassfish实例。我想以编程方式执行此操作。
最佳答案
使用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
。
关于ssl - 如何以编程方式为Tyrus WebSocket @ServerEndpoint启用WSS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53849572/