Comment obtenir le JSESSIONID à partir d'une requête HTTP à l'aide de ContainerRequestContext?
J'ai les en-têtes HTTP suivant une demande et je veux extraire les JSESSIONID
de lui:
Accept=application/json
Accept-Encoding=gzip
deflate,Accept-Language=en-us
Connection=keep-alive
Content-Length=0
Content-Type=application/json
Cookie=JSESSIONID=ss0ox8w99o9142b73rssvc0r
Host=localhost:8080
User-Agent=NFA_QA/34 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64)
Je suis en utilisant un ContainerRequestContext
comme suit:
@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
System.out.println("***HEADER VALUE**: " + requestContext.getHeaderString("Cookie"));
}
Obtenir comme résultat:
JSESSIONID=zv71od6l2fd41hv6yf0980khy
Et:
@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
Map<String, javax.ws.rs.core.Cookie> clientCookie = requestContext.getCookies();
System.out.println("Client Cookie Map: " + clientCookie);
}
Obtenir comme résultat:
Clinet Cookie Map: {JSESSIONID=JSESSIONID=1of1x5u1s1l4hdxfg2azlep42}
Quel est le meilleur moyen d'extraire le JSESSIONID
de la demande?
Vous devez vous connecter pour publier un commentaire.
Un pas en arrière
Tout d'abord, le REPOS et les identifiants de session ne sonne pas bien dans la même phrase.
La S dans RESTE signifie apatrides et pas stateful. Dans le RESTE des applications, l'état de la session doit être géré par le client et non pas par le serveur. Par conséquent, il ne doit pas y avoir des identifiants de session.
Pour plus d'informations, jetez un oeil ici et ici.
L'obtention d'une valeur d'un cookie dans JAX-RS
Je pense que vous êtes à la recherche pour la solution suivante:
Pour plus d'informations sur
Cookie
, avoir un regard sur le la documentation.