tomcat正在运行的服务器有两个域名(例如,example1.com和example2.com)。我想限制对tomcat的访问,这样它只能使用example2.com访问。当任何人尝试使用example1.com或IP地址时,tomcat应该会出现一些错误,比如找不到Page。
由于我无法触摸DNS条目,我是否可以在tomcat中构建此限制??
发布于 2014-06-23 08:00:36
您将无法完全阻止它: 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);
}
}或者你可以在你的猫里面定义2/3的主机。在应用程序中,一个主机作为exemple2.com,而默认主机只发送错误页面。
正如我所说的,这是远远不完美的,因为它可以很容易地绕过通过更改主机头。
https://stackoverflow.com/questions/24358295
复制相似问题