Hi
One can write either a CXF interceptor or CXF JAXRS RequestHandler filter,
please see
http://cxf.apache.org/docs/jax-rs.html#JAX-RS-DifferencebetweenJAXRSfiltersandCXFinterceptors
If you do JAX-RS only then writing a filter could be a simpler option, for ex, one can have JAXRS HttpHeaders injected into a custom
filter :
@Context
private HttpHeaders headers;
and then just do header.getCookies() in handleRequest();
Alternatively, if you prefer to write a CXF interceptor then you can get to the
cookies like this :
String rawValue = new MetadataMap<String, String>(
(Map<String,
List<String>>)message.get(Message.PROTOCOL_HEADERS)).getFirst("Cookie");
Cookie c = Cookie.valueOf(rawValue);
Note that the CXF HTTP transport does not split multiple header values (those separated by ',') so if the Cookie header contains
multiple cookies then you'd need to split thme first before doing Cookie.valueOf(rawValue);
hope it helps, Sergey
Hi there,
I'm new to CXF and JAX-RS programming so the paradigm is quite foreign
to me. At the moment I'm trying to figure out how one would go about
implementing a Interceptor or Invoker that would execute prior to the
service class mapped to the specific request, for example to validate
a session token value. I had in mind being able to read this from a
cookie but can't see any easy way of doing so.
Within the Interceptor implementation the only way I've found to get
at this API is this (horrible) hack:
new MessageContextImpl(message).getHttpHeaders().getCookies()
I mean, there's got to be an easier and better way than that, right?
Cheers
Mike