gpt4 book ai didi

java - 如何获取对 Jersey 中调用的方法的引用

转载 作者:行者123 更新时间:2023-12-02 06:49:57 25 4
gpt4 key购买 nike

我正在使用 jersey 开发基于 REST 的 Web 服务。我想为此 Web 服务实现基于角色的授权。

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

@RolesAllowed("ADMIN")
@Path("\Users")
@GET
public void getUsers() {
// some code.
}

getUsers() 将针对 GET\Users 请求调用。

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

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

以便我可以检查其 @RolesAllowed 注释以授予或拒绝访问权限。

RestEasy中,我们有PreProcessInterceptor接口(interface),它具有以下方法:

 preProcess(HttpRequest request, ResourceMethod methodInvoked)

ResourceMethod 的 getMethod() 为我们提供了在我们的案例 getUsers() 中调用的方法的引用。使用此方法引用,我可以检查注释并执行操作。

现在我的问题是如何在 Jersey 中做到这一点?

RestEasy PreProcessInterceptorJersey 替代品是什么?

最佳答案

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

然后调用ResourceMethod .getInvocable().getHandlingMethod() 你可以检查你需要的任何内容:)

关于java - 如何获取对 Jersey 中调用的方法的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18171420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com