7

アプリケーションで JavaEE 7 ベースの Websocket-API を使用しています。

websocket endpoint 内の Cookie に設定された値にアクセスする必要があります[Annotated one : @ServerEndpoint ("/websocket") ]。どうすればいいですか?

@onOpen()メソッドがあり、この WebSocket エンドポイントへの接続が確立されると自動的に呼び出されます。このメソッド内で、そこにある Cookie の値にアクセスしたいと思います。

サーブレットまたは JSP でこれを行う方法は知っていますが、Websocket は初めてです。

これを行うのを手伝ってください。前もって感謝します。

4

2 に答える 2

10

Joakimの答えは正しい方向へのヒントを提供しますが、質問に完全には答えていないか、少なくとも補完できるとは思いません。

Cookie の値を取得するには、HandshakeRequest オブジェクトのヘッダーを取得し、「cookie」という名前のヘッダーを探す必要があります。modifyHandshake の実装は次のようになります。

public class MyEndpointConfigurator extends ServerEndpointConfig.Configurator {
    @Override
    public void modifyHandshake(ServerEndpointConfig config, 
                                HandshakeRequest request, 
                                HandshakeResponse response)
    {
        Map<String,List<String>> headers = request.getHeaders();
        config.getUserProperties().put("cookie",headers.get("cookie"));
    }
}
于 2015-04-16T19:33:31.620 に答える
6

リクエスト パラメータへのアクセスは、この@ServerEndpoint(configurator=MyConfigurator.class)手法を介して行われます。

そのテクニックは非常に似ているため、 HttpSession にアクセスする方法については他の回答を参照してください。

于 2013-08-07T11:52:20.193 に答える