java 中写的服务如何只能处理来自定义的 ip 的请求?
How to do that service wriiten in java can handle requests only from the defined ip?
我想在 java 中编写由几个端点组成的应用程序。我希望这个端点仅在它们是从定义的 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
}
Web 应用程序
阿帕奇 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开机
对于 Spring 使用嵌入式 Apache Tomcat 容器启动 运行 的应用程序,这是默认行为,请使用 Apache Tomcat 部分中描述的相同过滤器多于。它是在代码中配置的,而不是 XML。 Spring 引导文档解释了如何启用 Servlet 过滤器。使用文档中的说明启用 RemoteAddrFilter。
Spring 引导文件:Document
我想在 java 中编写由几个端点组成的应用程序。我希望这个端点仅在它们是从定义的 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
}
Web 应用程序
阿帕奇 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开机
对于 Spring 使用嵌入式 Apache Tomcat 容器启动 运行 的应用程序,这是默认行为,请使用 Apache Tomcat 部分中描述的相同过滤器多于。它是在代码中配置的,而不是 XML。 Spring 引导文档解释了如何启用 Servlet 过滤器。使用文档中的说明启用 RemoteAddrFilter。
Spring 引导文件:Document