glassfish 4.0 Java EE7中WebSocket中的SSL
我正在glassfish 4.0中开发WebSocket应用程序。当不使用SSL时,一切都正常工作,但当使用SSL时,我无法使事情正常工作glassfish 4.0 Java EE7中WebSocket中的SSL,java,ssl,glassfish,websocket,Java,Ssl,Glassfish,Websocket,我正在glassfish 4.0中开发WebSocket应用程序。当不使用SSL时,一切都正常工作,但当使用SSL时,我无法使事情正常工作 我使用带注释的Java对象作为服务器: @ServerEndpoint("/websocket/{sessionID}") public class WebSocketServerEndPoint {...} 在客户端,我使用以下javascript: var webSocket = new WebSocket('wss://domain.com:81
我使用带注释的Java对象作为服务器:
@ServerEndpoint("/websocket/{sessionID}")
public class WebSocketServerEndPoint {...}
在客户端,我使用以下javascript:
var webSocket = new WebSocket('wss://domain.com:8181/websocketserver/websocket/sessionXXX');
在部署描述符web.xml中,我要确保应用程序不能通过ssl以外的其他方式访问:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected resource</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- deny all methods other than GET in all url -->
<security-constraint>
<web-resource-collection>
<web-resource-name>protected</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method-omission>GET</http-method-omission>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
有没有想过为什么ssl在使用WebSocket时不起作用,但在使用https时效果很好?URL末尾的斜杠会有帮助?如下所示:var webSocket=newwebsocket('wss://domain.com:8181/websocketserver/websocket/sessionXXX/');这不是问题所在,因为当我使用不带ssl的websocket时,我会写:newWebSocket('ws://domain.com:8080/websocketserver/websocket/sessionXXX');没有斜杠。您是否尝试为SSL附加斜杠?对于SSL,它可能是一个解决方案。即使它对非SSL连接不使用斜杠,也可能对SSLHi不起作用,只是为了确保我尝试在末尾附加反斜杠。结果是一样的。服务器根本不响应,在客户端,readystate为3,这意味着连接已关闭或无法打开。
https://domain.com:8181/websocketserver/index.html