据我所知,可以使用注入的ResourceInfo获取资源类和方法,但我需要在请求过滤器中执行我的资源类的某些方法,所以我需要获取此对象。
或许在这种情况下获取确切对象的整个想法是错误的?
UPD: 以下是对原始问题的描述:
例如,我有一个返回所有用户的资源,它也可以为特定用户返回一个子资源:
@Path("users") public class UsersResource {
@GET List<User> getUsers() {...}
@Path("{id}") UserSubresource getById(PathParam("id") String id) {
return new UserSubresource(getUserById(id));
}
}
这是UserSubresource:
public class UserSubresource {
User user;
@GET public User getUser() {return user;}
...
public boolean isAccessible() {
return user.isAccessibleByCurrentUser();
}
}
我需要检查getUser()方法的访问权限,在找到实际用户之前我无法检查权限。 我知道我可以在getUser()方法本身中添加此检查,但这种情况对于我的应用程序中的其他实体是相同的,所以我想要更常见的解决方案。