2014-10-09 39 views
2

我正在做一個基於令牌的認證使用jboss 7.1和resteasy。 我使用PreProcessInterceptor攔截請求,獲取令牌,從令牌中檢索用戶,然後根據放置在該方法上的自定義註釋檢查用戶角色。我現在想要做的是將用戶注入方法,如folowing。jboss Resteasy參數注入@Context

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

我知道這是從this問題非常接近,我已經試過addapting提出的linked github example的解決方案型動物,但我不能找到一種方法,從我PreProcessInterceptor內注入用戶。

感謝

+0

有沒有一個jax-rs不可知的方式? – Setheron 2015-11-03 05:10:17

回答

12

這是解決方案,我發現finnaly:

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

} 

然後你可以檢索與我在我的問題中使用的符號的用戶。

希望它能幫助別人。

+0

有沒有一個jax-rs不可知的方式? – Setheron 2015-11-02 19:29:37

+2

PreProcessInterceptor在Resteasy 3.x中已棄用。在3.x版本中,可以使用javax.ws.rs.container.ContainerRequestFilter完成。有關更多信息,請參閱http://stackoverflow.com/a/17597783/122975 – 2016-03-05 12:28:45

相關問題