У меня есть веб-сервисы RESTful, реализованные с использованием Jax-RS. Мне нужно использовать SecurityContext.getUserPrincipal().getName()
, чтобы получить имя текущего пользователя.
У меня есть много методов веб-службы, и для каждого метода я добавляю SecurityContext
, используя аннотацию @Context
. Проблема в том, что мне нужно сделать это для каждого имеющегося у меня метода веб-службы:
Например:
@GET
@Consumes("application/json")
@Produces("application/json")
public Response getSomething(@Context SecurityContext context) {
CmdUtils.buildCmd(CmdGetSomething.class, context, getUserPrincipal())
.
.
.
}
А внутри CmdUtils.buildCmd
метода я получаю пользователя с UserPrincipal.getName()
. Кстати, метод buildCmd
является общим и одинаковым для каждого метода REST. Поэтому я централизовал обработку имени пользователя.
Однако мне все еще нужно внедрить SecurityContext
для каждого метода REST, используя аннотацию @Context
в качестве параметра для каждого метода RETS.
Есть ли способ централизовать это?