Внедрение параметра 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);
}
Затем вы можете получить пользователя с пометкой, которую я использовал в своем вопросе.
Надеюсь, это кому-нибудь поможет.