Tomcat仅限访问特定域名

时间:2014-06-23 04:15:00

标签: tomcat solaris-10

运行tomcat的服务器有两个域名(例如,example1.com和example2.com)。我想限制对tomcat的访问,这样,它只能通过example2.com访问。当有人尝试使用example1.com或IP地址时,tomcat会出现一些错误,例如找不到Page ..

由于我无法触及DNS条目,无论如何我可以在tomcat中构建此限制吗?

1 个答案:

答案 0 :(得分:0)

您将无法完全阻止它:TCP连接是通过地址的IP完成的,并且无法知道查询了哪个域名来查找该IP。没有改变DNS,没有绝对的解决方案(即使这样,你也无法通过IP阻止访问)

一种方法是阻止Host:exemple2.org不同的任何请求。例如,使用自定义过滤器:

@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    if (!request.getServerName().equals("exemple2.com")) {
        ((HttpServletResponse) response).sendError(403);
    } else {
        chain.doFilter(request, response);
    }

}

或者您可以在tomcat中定义2/3主机。一个主机exemple2.com与您的应用程序和默认的一个仅发送错误页面。

正如我所说,这远非完美,因为可以通过更改主机标题轻松绕过它。