【问题标题】:jboss Resteasy parameter injection with @Contextjboss Resteasy参数注入@Context
【发布时间】:2014-12-04 05:27:20
【问题描述】:

我正在使用 jboss 7.1 和 resteasy 进行基于令牌的身份验证。 我正在使用 PreProcessInterceptor 来拦截请求、获取令牌、从令牌中检索用户,然后根据放置在方法上的自定义注释检查用户角色。我现在要做的就是将 User 注入到下面的方法中。

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

我知道这与this 问题非常接近,我尝试添加linked github example 上提出的不同解决方案,但我找不到从我的 PreProcessInterceptor 中注入用户的方法。

谢谢

【问题讨论】:

  • 是否有与 jax-rs 无关的方式?

标签: java rest jboss jax-rs resteasy


【解决方案1】:

这是我最终找到的解决方案:

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

}

然后您可以使用我在问题中使用的符号检索用户。

希望对某人有所帮助。

【讨论】:

  • 有与 jax-rs 无关的方式吗?
  • PreProcessInterceptor 在 Resteasy 3.x 中被弃用。在 3.x 版本中,这可以使用 javax.ws.rs.container.ContainerRequestFilter 来完成。更多信息请见stackoverflow.com/a/17597783/122975
猜你喜欢
  • 2012-10-01
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2020-03-08
  • 1970-01-01
  • 2013-03-08
相关资源
最近更新 更多