【问题标题】:RestEasy InterceptorRestEasy拦截器
【发布时间】:2016-08-15 19:51:24
【问题描述】:

我想知道它是否像我目前尝试实现的那样难。我在我的 RESTEasy 应用程序中使用 Some Interceptor 来保证安全。拦截器实现javax.ws.rs.container.ContainerRequestFilter

我使用这样的代码来访问请求数据:

if (((PostMatchContainerRequestContext) requestContext).getHttpRequest().getHttpMethod().equals("GET")) {
   requestedId = Long.parseLong(requestContext.getUriInfo().getQueryParameters().get("id").get(0));
} else {
   postDataMap = getPostData(requestContext);
}

private LinkedHashMap getPostData(ContainerRequestContext requestContext) {
   Object obj = null;

    try {
       String result = IOUtils.toString(requestContext.getEntityStream());
       ObjectMapper mapper = new ObjectMapper();
       obj = mapper.readValue(result, Object.class);
       System.out.println(obj);
     } catch (IOException e) {
        e.printStackTrace();
     }
   return (LinkedHashMap) obj;
}

但是以这种方式访问​​请求数据似乎很荒谬。现在我想访问DELETE-Request 数据但找不到任何解决方案。有没有更合适的方法来实现我目前正在做的事情?

【问题讨论】:

    标签: java rest resteasy


    【解决方案1】:

    拦截是指在数据进入其余层之前检查数据?我通过实现过滤器接口 (https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Filter.html) 实现了这一点。

    希望对您有所帮助。 溴, 杜桑

    【讨论】:

    【解决方案2】:

    您可以在标头中设置安全信息,获取如下值:

    String logintoken = crc.getHeaderString("token");
    

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 2017-05-17
      • 2023-04-04
      • 1970-01-01
      • 2015-11-22
      • 2014-03-10
      • 2013-06-25
      • 2018-08-09
      • 1970-01-01
      相关资源
      最近更新 更多