Java 如何获取对jersey中调用的方法的引用

Java 如何获取对jersey中调用的方法的引用,java,jersey,resteasy,Java,Jersey,Resteasy,我正在使用jersey开发一个基于REST的web服务。我想为这个web服务实现基于角色的授权 现在假设我有一个方法getUsers(): @RolesAllowed("ADMIN") @Path("\Users") @GET public void getUsers() { // some code. } 将为GET\Users请求调用getUsers() 收到请求后,我将使用客户端的凭据对其进行身份验证并确定其角色,然后我必须决定让请求通过还是拒绝 获取凭据和验证用户不是问题,我需要一

我正在使用
jersey
开发一个基于REST的web服务。我想为这个web服务实现基于角色的授权

现在假设我有一个方法
getUsers()

@RolesAllowed("ADMIN")
@Path("\Users")
@GET
public void getUsers() {
  // some code.
}
将为
GET\Users
请求调用
getUsers()

收到请求后,我将使用客户端的凭据对其进行身份验证并确定其角色,然后我必须决定让请求通过还是拒绝

获取凭据和验证用户不是问题,我需要一种方法来获取对将为请求执行的方法的引用

这样我就可以检查它的@RolesAllowed注释来授予或拒绝访问权限

RestEasy
中,我们有
prepreprocessinterceptor
接口,该接口具有以下方法:

 preProcess(HttpRequest request, ResourceMethod methodInvoked)
ResourceMethod的
getMethod()
为我们提供了在本例中调用的方法的参考。使用这个
方法
参考,我可以检查注释并做一些事情

现在我的问题是,我怎样才能在
泽西

RestEasy
预侦听器的替代方案是什么?

您可以注入并调用。这也适用于(后匹配)过滤器,因此您应该能够使用JAX-RS


然后调用.getInvocable().getHandlingMethod(),您可以根据需要进行检查:)

根据您的描述,使用面向方面的编程范例来实现这项任务似乎是一项不错的任务。当发出get请求时,您将拦截该请求,检查用户并让该方法执行(或不执行)。