JAX-RS, RestEasy: Kein session-cookie

Leute,

Verwendet werden, dass, wenn man eine servlet/jsp-Datei, der app-server würde automatisch eine session starten. Es würde ein session-cookie in der ersten Dynamik, die verfolgt während.

Habe ich ein rest-backend und ich merke, dass keine session-cookies werden-gehandelt werden. Also habe ich manuell das hinzufügen von code zu senden, das JSESSIONID-cookie:

@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 ) );
}

Nun dadurch verursacht wird, dass 2 Exemplare des JSESSIONID cookie zurückgegeben wird, wo es vorher war kein Set-Cookie-header. Dies ist, was ich sehe nun in meinen browser-inspector:

Set-Cookie:JSESSIONID=sdm-Q1P6pRoQbKd4-9cJylGb; Path=/nn, JSESSIONID=sdm-Q1P6pRoQbKd4-9cJylGb; Version=1

Ist mir egal, wie lange das funktionieren würde. Aber leider, wenn mein browser fordert die URL umgeleitet wird, um (beachten Sie, dass die Antwort "SEE_OTHER"), dass dieser Antrag trägt nicht die session-id. Dies verursacht meine app funktionieren nicht richtig.

Irgendwelche Erkenntnisse?

  • Was ist Ihre client-side-framework? Es ist möglich, dass der client ignorieren/ablehnen ist die session-id gesendet, die von Ihrem server. Ich erwähne nur diese, weil ich mit der Jersey-client-API und die Java verwendet die cookie-Mechanismus unter der Haube, die lehnt alle cookies aus der box.
  • Client ist JQuery JavaScript.
  • Ein REST-design ist staatenlos. Warum brauchen Sie einen cookie? 🙂
InformationsquelleAutor Raj | 2012-02-03
Schreibe einen Kommentar