Могу ли я получить заголовок запроса и заголовок ответа для функции веб-службы?

Я использую Java с Apache CXF для написания бэкэнда для AngularJS (одностраничный веб-сайт). В моей службе REST мне нужен доступ к заголовку http-запроса (т.е. параметры и файлы cookie), а также мне нужен доступ к заголовку ответа (т.е. параметры и файлы cookie). Основная причина этого — безопасность, аутентификация и управление сессиями. Это важные причины.

Есть ли способ получить обе эти структуры в коде Apach CXF RESTfull?


person user3646774    schedule 27.11.2014    source источник


Ответы (1)


Вы можете ввести запрос, используя @Context [javax.ws.rs.core.Context]

  public Response myRest(@Context HttpServletRequest request /*, other parameters if you have like @QueryParam */ ){
    request.getCookies();
    request.getUserPrincipal();
}

Вы можете установить cookie или заголовок в ответ, как показано ниже.

ResponseBuilder builder = Response.ok(); //Response.status(500) either way
builder.cookie(arg0);
builder.header(arg0, arg1);
return bulider.build();
person Karthik Prasad    schedule 28.11.2014
comment
Отличное решение для запроса доступа. Он также работает с HttpServletResponse? Поскольку обработчик сервлета имеет параметры HttpServletRequest и HttpServletResponse, справедливо предположить, что мы также можем получить ссылку на ответ таким же образом. Но никто не хочет ставить эти два параметра в интерфейс функций веб-сервиса. Возможно, создание встроенного класса, в котором эти параметры вводятся в параметры конструктора, могло бы помочь! Стоит попробовать! - person user3646774; 30.11.2014