【问题标题】:Is there a way to limit a servlet accessibilty to a certain port?有没有办法限制 servlet 对某个端口的可访问性?
【发布时间】:2016-10-13 10:01:38
【问题描述】:

我有一个应用程序使用两个不同的端口,443 和 4443。另一个用于使用应用程序 (UI),另一个是用于某些自动化客户端的控制通道。

我在 web.xml 中配置了几个不同的 servlet。首先是UI使用,对于平时通过https-443使用应用的用户:

<servlet-mapping>
    <servlet-name>application_ui</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我还有一个映射在 web.xml 中的 servlet,它只被端口 4443 中的客户端使用,让这个 servlet 命名为“client_inlet”。这是一个简单的 POST 请求侦听器服务,没有供用户使用的功能。

<servlet-mapping>
    <servlet-name>client_inlet</servlet-name>
    <url-pattern>/ClientInlet</url-pattern>
</servlet-mapping>

目前用户可以从 443 和 4443 这两个端口访问应用程序的两个部分。

我希望实现的是应用程序的 client_inlet 部分只能使用端口 4443 来实现,并且所有 443 流量都将被重定向到 application_ui

以下是我想做的事情(不确定这是否是 web.xml 中可能的语法,但至少它不起作用):

<servlet-mapping>
    <servlet-name>application_ui</servlet-name>
    <url-pattern>https://*:443/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>client_inlet</servlet-name>
    <url-pattern>https://*:4443/ClientInlet</url-pattern>
</servlet-mapping>

是否甚至可以使用 web.xml 配置来实现该场景?还是应该在应用服务器端完成?我正在使用 WildFly 8.1.0,知道如何在standalone.xml 中完成此操作吗?

【问题讨论】:

  • 它是应用服务器或servlet容器配置的一部分,不是web.xml
  • 所以你基本上是说这应该在wildfly的配置中完成?
  • 我想是的,是的
  • 为什么?它会给你的生活带来什么改变?
  • 我想通过使用 IP 白名单 (443) 限制对防火墙中应用程序的访问,仍然让所有流量通过端口 4443。我不希望应用程序可以通过4443 端口。

标签: java servlets port wildfly web.xml


【解决方案1】:

我认为您不能在配置中执行此操作。由于每个端口都是不同的服务器,不是吗?在这种情况下,您希望重定向到不同的位置/服务器,而不是同一应用程序中的重定向。

我没有看到任何其他方法可以在代码或应用程序中做到这一点。

使用 javax.servlet.Filter 实现似乎非常适合这项任务。您只需要检查路径是否以“/ClientInlet”开头,然后重定向到其他位置,否则只需继续请求。 我不确定我是否正确了解了有关重定向的详细信息,但以下内容似乎合适:

过滤代码:

String path = request.getRequestURI();
if(path.equals("/ClientInlet"))
{//Redirect the client to the new location i.e. the other port
    response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
    response.setHeader("Location", "https://someserver.com:port/ClientInlet");
} else
{//Just forward the request to the servlet
   filterChain.doFilter(servletRequest, servletResponse);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多