Java中的服务wriiten如何只能处理来自定义的ip的请求?

时间:2019-03-14 10:41:28

标签: java http server endpoint

我想用很少的端点组成的Java编写应用程序。我希望此端点仅在从定义的ip发送请求时才处理请求。我该如何实施?

2 个答案:

答案 0 :(得分:1)

执行类似的操作以获取IP地址,该IP地址与您的预定义IP地址匹配。

@RequestMapping(value = "startup", method = RequestMethod.GET)
public @ResponseBody ProcessResponse startUp(@RequestBody RequestTemplate requestTemplate, HttpServletRequest request) {

        System.out.println(request.getRemoteAddr());
        // some other code
}

答案 1 :(得分:1)

Web应用程序

Apache Tomcat

在应用程序中编辑WEB-INF / web.xml文件。添加以下内容:

<filter>
  <filter-name>Remote Address Filter</filter-name>
  <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
  <init-param>
    <param-name>allow</param-name>
    <param-value><!-- insert your ip list / regex here --></param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>Remote Address Filter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

这指示过滤器阻止除包含的IP地址之外的所有IP地址。该过滤器仅支持阻止列出的IP地址。可以在此处找到有关过滤器的更多信息。

Spring Boot

对于使用嵌入式Apache Tomcat容器运行的Spring Boot应用程序(这是默认行为),请使用上面“ Apache Tomcat”部分中所述的相同过滤器。它是在代码而不是XML中配置的。 Spring Boot文档介绍了如何启用Servlet过滤器。按照文档中的说明启用RemoteAddrFilter。

Spring Boot文档:Document