I think using cookies is a good idea, as they will be retained by the browser and sent back to the proxy with each request.
You will basically need to add a filter and check / insert cookies as required:
return new HttpFiltersSourceAdapter() {
@Override
public HttpFilters filterRequest(HttpRequest originalRequest) {
return new HttpFiltersAdapter(originalRequest) {
@Override
public HttpResponse requestPre(HttpObject httpObject) {
if (httpObject instanceof HttpRequest) {
// check the cookie here
}
return super.requestPre(httpObject);
}
@Override
public HttpObject responsePre(HttpObject httpObject) {
if (httpObject instanceof HttpResponse) {
HttpResponse response = (HttpResponse) httpObject;
response.headers().set(HttpHeaders.Names.SET_COOKIE, ServerCookieEncoder.encode("Content", "Some"));
return response;
}
return httpObject;
}
};
}
};