Java 如何在Jersey的RequestFilter中获取资源对象

Java 如何在Jersey的RequestFilter中获取资源对象,java,jersey,Java,Jersey,据我所知,使用注入的ResourceInfo可以获得资源类和方法,但我需要在请求过滤器中执行我的资源类的某些方法,所以我需要获得这个对象 或者在这种情况下,获取精确物体的整个想法是错误的 UPD: 以下是原始问题的说明: 例如,我有一个返回所有用户的资源,它还可以返回特定用户的子资源: @Path("users") public class UsersResource { @GET List<User> getUsers() {...} @Path("{id}") U

据我所知,使用注入的ResourceInfo可以获得资源类和方法,但我需要在请求过滤器中执行我的资源类的某些方法,所以我需要获得这个对象

或者在这种情况下,获取精确物体的整个想法是错误的

UPD: 以下是原始问题的说明:

例如,我有一个返回所有用户的资源,它还可以返回特定用户的子资源:

@Path("users") public class UsersResource {
    @GET List<User> getUsers() {...}
    @Path("{id}") UserSubresource getById(PathParam("id") String id) {
        return new UserSubresource(getUserById(id));
    }
}
我需要检查getUser()方法的访问权限,在找到实际用户之前,我不能检查权限。
我知道我可以在getUser()方法本身中添加这个check,但是对于我的应用程序中的其他一些实体,这种情况也是一样的,所以我想要更通用的解决方案

“或者在这种情况下,获取精确物体的整个想法都是错误的?”-可能。如果您详细描述这个问题,使用一些代码片段,我们可以帮助您想出另一个解决方案。我的资源有方法isAccessible(),我想在RequestFilter中调用此方法,如果返回false,则返回403。如何确定真/假?这不是可以在过滤器中确定的吗?听起来您正在尝试实现一些安全特性,在大多数情况下,应该能够在filter类()中完全处理这些特性。这就是我要求提供更多细节的原因。这将有助于准确地理解你想要实现的目标。有助于避免错误,代码片段确实有助于我们更好地理解问题。添加了代码片段。
public class UserSubresource {
    User user;

    @GET public User getUser() {return user;}
    ...
    public boolean isAccessible() {
        return user.isAccessibleByCurrentUser();
    } 
}