从requestContext RESTEasy 3.0.7获取完整路径,以获取JAVA中的安全性RequestFilter

时间:2014-06-16 07:14:51

标签: java resteasy

我正在使用RESTEasy3.0.7 PreRequestFilter来保护我的REST API。在这里,我试图获得在screenInvoker中提供的屏幕短片中提到的完整路径。没有直接的方法来获得这个值..我尝试过使用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 - >方法 - >全路径值..任何人都可以在这方面提供帮助,如果没有直接可用的方法,怎么能得到这个值..

1 个答案:

答案 0 :(得分:2)

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

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

但我不知道获取没有替换路径参数的URI模板的标准方法。 ResourceMethodInvoker仅展示java.lang.reflect.Method的{​​{1}},但不会展示您需要访问的org.jboss.resteasy.spi.metadata.ResourceMethod本身。

你可以按照反射获得模板:

org.jboss.resteasy.spi.metadata.ResourceMethod