繁体   English   中英

轻松拦截器

[英]RestEasy Interceptor

我想知道它是否像我目前尝试的那样困难。 我在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数据,但是找不到任何解决方案。 有什么合适的方法可以实现我目前的工作?

通过拦截,您的意思是在数据进入其余层之前对其进行检查? 我通过实现Filter接口( https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Filter.html )实现了这一目标。

希望能帮助到你。 Br,杜珊

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM