运行tomcat的服务器有两个域名(例如,example1.com和example2.com)。我想限制对tomcat的访问,这样,它只能通过example2.com访问。当有人尝试使用example1.com或IP地址时,tomcat会出现一些错误,例如找不到Page ..
由于我无法触及DNS条目,无论如何我可以在tomcat中构建此限制吗?
答案 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
与您的应用程序和默认的一个仅发送错误页面。
正如我所说,这远非完美,因为可以通过更改主机标题轻松绕过它。