Внедрение параметра jboss Resteasy с помощью @Context

Я делаю аутентификацию на основе токенов, используя jboss 7.1 и resteasy. Я использую PreProcessInterceptor для перехвата запроса, получения токена, извлечения пользователя из токена и затем проверки ролей пользователя по пользовательским аннотациям, размещенным в методе. То, что я хочу сделать сейчас, - это ввести User в метод, такой как folowing.

@Path("/doStuffWithUser")
@GET
@Requires("ADMIN") // custom annotation
public Response doStuffWithUser(@Context User user);

Я знаю, что этот вопрос очень близок к этому вопросу, и я попытался добавить различные решения, предложенные на примере связанного github, но я не могу найти способ внедрить пользователя из моего PreProcessInterceptor.

Спасибо

1 ответ

Решение

Вот решение, которое я наконец нашел:

PreProcessInterceptor.preProcess(..){
    ... 
    retrieve User from token
    check roles
    ...
    //add the user to the context data
    ResteasyProviderFactory.pushContext(User.class, user);

}

Затем вы можете получить пользователя с пометкой, которую я использовал в своем вопросе.

Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам