【问题标题】:Open WebSocket connection with authentication cookie使用身份验证 cookie 打开 WebSocket 连接
【发布时间】:2015-01-25 18:58:44
【问题描述】:

我和Websockets and cookies in Android有同样的问题,我一直在尝试按照第一条评论的建议解决它,

WebSocketClient( URI serverUri , Draft protocolDraft , Map httpHeaders , int connectTimeout)

使用Java-WebSocket,以及查看许多其他API,例如Jetty 和AndroidAsync。但尽管如此,我无法打开 websocket 连接。

我有一个Apache http cookie,需要它来通过 WebSocket 向服务器验证我自己的身份。将 cookie 转换为 httpHeader 的正确方法是什么,或者有什么巧妙的方法可以在连接到 websocket 时简单地将整个 cookie 添加到身份验证中?也许我只是错过了明显的..

对可能的术语误用表示歉意,但我希望您能大致了解。

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: java android cookies header websocket


    【解决方案1】:

    所以我实际上设法解决了它,结果发现实际问题不是 cookie,而是 websocket 没有使用有效的 sslcontext 初始化。这很容易解决:

    WebSocketOrderClient webSocketOrderClient = new WebSocketOrderClient(uri, new Draft_17(), cmap, TIMEOUT);
    SSLContext sslContext = null;
    sslContext = SSLContext.getInstance( "TLS" );
    sslContext.init( null, null, null ); // will use java's default key and trust store which is sufficient unless you deal with self-signed certificates
    
    webSocketOrderClient.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sslContext));
    webSocketOrderClient.connectBlocking();
    

    使用 WebSocketOrderClient:

    private class WebSocketOrderClient extends WebSocketClient {
        public WebSocketOrderClient( URI serverUri, Draft draft, Map<String, String> headers, int timeout) {
            super( serverUri, draft, headers, timeout );
        }
        @Override
        public void onOpen( ServerHandshake handshakedata ) {
            Log.w("connected", "true");
        }
        @Override
        public void onMessage( String message ) {
            Log.w( "got: ", message );
        }
        @Override
        public void onClose( int code, String reason, boolean remote ) {
            Log.w( "Disconnected", ""+code  );
        }
        @Override
        public void onError( Exception ex ) {
            ex.printStackTrace();
        }
    }
    

    希望这对将来可能遇到此问题的任何人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-15
      • 2015-06-02
      • 2022-09-29
      • 2015-05-11
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多