皆さん、あなたはサーブレット/ JSPを打ったときに、アプリケーション・サーバーが自動的にセッションを開始することを可能するために使用しJAX-RS、RESTEasyの:いいえセッションクッキー
。全体を通して追跡される最初の動的応答にセッションクッキーを置きます。
私は休憩バックエンドを持っており、セッションクッキーが取引されていないことに気付きました。だから私は、手動でJSESSIONIDクッキーを送信するためのコードを追加します。
@Context
private HttpServletRequest httpRequest;
// ...
@GET
@Path("/{rcpGuid}")
public Response myMethod(...)
{
final HttpSession session = httpRequest.getSession();
final String sSessionId = session.getId();
...
return Response.status(Response.Status.SEE_OTHER).
location(redirectUrl).cookie(new NewCookie("JSESSIONID", sSessionId));
}
さて、これは何のSet-Cookieヘッダーがなかったところの前に戻されてJSESSIONIDクッキーの2つのコピーを引き起こしています。これは私のブラウザのインスペクタで今見ている通りです:
Set-Cookie:JSESSIONID=sdm-Q1P6pRoQbKd4-9cJylGb; Path=/nn, JSESSIONID=sdm-Q1P6pRoQbKd4-9cJylGb; Version=1
これは機能している限り私は気にしません。しかし残念ながら、私のブラウザがリダイレクトされるURLを要求する(応答が "SEE_OTHER"であることに気付く)場合、そのリクエストはセッションIDを保持しません。これは、私のアプリが正しく機能しない原因になります。
洞察?
クライアントサイドフレームワークとは何ですか?クライアントがサーバーから送信されたセッションIDを無視/拒否している可能性があります。私はJerseyクライアントAPIを使用し、ボックスの外にあるすべてのクッキーを拒否するフードの下でJavaのクッキーメカニズムを使用するため、これについてのみ言及します。 – Pace
クライアントはJQuery JavaScriptです。 – Raj
RESTデザインはステートレスです。なぜあなたはクッキーを必要としますか? :-) – haraldK