gpt4 book ai didi

java - 从 requestContext 获取完整路径 RESTEasy3.0.7 PreRequestFilter for Security in JAVA

转载 作者:行者123 更新时间:2023-12-02 05:44:12 24 4
gpt4 key购买 nike

我正在开发 RESTEasy3.0.7 PreRequestFilter 来确保我的 REST API 的安全。在这里,我尝试获取 methodInvoker 中提供的屏幕简短中提到的完整路径。没有直接的方法来获取这个值。我尝试过使用 getProperty 但它也不起作用。

@Provider
public class PreRequestFilter implements javax.ws.rs.container.ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws IOException
{
ResourceMethodInvoker methodInvoker = (ResourceMethodInvoker) requestContext.getProperty("org.jboss.resteasy.core.ResourceMethodInvoker");
Method method = methodInvoker.getMethod();

enter image description here

我只需要 methodInvoker -> method -> fullpath value..任何人都可以在这方面提供帮助,例如如果没有直接可用的方法,如何获取该值..

最佳答案

获取请求的路径可以轻松完成:

String path = requestContext.getUriInfo().getPath();

但我不知道在没有替换路径参数的情况下获取 URI 模板的标准方法。 ResourceMethodInvoker 仅公开 org.jboss.resteasy.spi.metadata.ResourceMethodjava.lang.reflect.Method,但不公开您需要访问的 org.jboss.resteasy.spi.metadata.ResourceMethod 本身。

您可以获得每次反射的模板:

Field field = ResourceMethodInvoker.class.getDeclaredField("method");
field.setAccessible(true);
ResourceMethod method = (ResourceMethod) field.get(methodInvoker);
String path = method.getFullpath();

关于java - 从 requestContext 获取完整路径 RESTEasy3.0.7 PreRequestFilter for Security in JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24238352/

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