2014-06-23 1 views
0

tomcat이 실행되는 서버에는 두 개의 도메인 이름 (예 : example1.com 및 example2.com)이 있습니다. tomcat에 대한 액세스를 제한하여 example2.com에서만 액세스 할 수 있습니다. 누구나 example1.com 또는 IP 주소로 시도하면 Tomcat에 페이지와 같은 오류가 발생합니다.Tomcat 특정 도메인 이름에 대한 액세스 만 제한

DNS 항목을 터치 할 수 없으므로 어쨌든 tomcat 내에이 제한을 설정할 수 있습니까 ??

답변

0

완벽하게 차단할 수 없습니다. TCP 연결은 주소의 IP로 이루어 지므로 IP를 찾기 위해 어떤 도메인 이름을 쿼리했는지 알 수있는 방법이 없습니다. DNS 변경이 짧고 절대적인 해결책이 없습니다 (심지어 그때까지는 IP로 액세스를 차단할 수 없습니다)

이 (가) 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이고 오류 페이지 만 보내는 기본 호스트입니다.

내가 말했듯이 호스트 헤더를 변경하여 쉽게 우회 할 수 있으므로 완벽하지는 않습니다.

+0

감사합니다. 나는 또한 이것을 생각했다. 그러나 요청을 받음으로써 클라이언트는 이미 성공적으로 HTTPS 연결을 만들었고 example1과 example2가 같은 시스템이라는 것을 알게되었습니다. 몇 가지 해결책을 찾아 보겠습니다. – Midson