Централизованное внедрение SecurityContext в jax-rs - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть веб-сервисы 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.

Есть ли способ централизовать это?

...