glassfish 4.0 Java EE7中的websockets中的SSL

时间:2013-10-22 10:35:08

标签: java ssl glassfish websocket

我正在开发glassfish 4.0中的websockets应用程序。不使用SSL时一切正常,但在使用SSL时我无法正常工作。


我正在使用带注释的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>

我通过访问index.html测试页面测试了https,该页面显示正确。

https://domain.com:8181/websocketserver/index.html

有关使用websockets时ssl无效的原因,但在使用https时工作正常吗?

0 个答案:

没有答案