2011-03-07 10 views
12

저는 여러 가지 웹 응용 프로그램을 제공하기 위해 Tomcat 6을 실행하고 있습니다. 대부분은 공개되어 있습니다. 하지만 에 대한 액세스를 단지 webapp로 제한하고 싶습니다. localapp의 연결 만 허용합니다.Tomcat : 로컬 호스트에 대한 액세스 제한/webapp에 대한 액세스 허용

하지만에 대한 액세스를 제한하는 방법을 알아낼 수 없습니다에 설명 된대로

내가 context.xml에있는 밸브를 사용하여 모든 웹 어플리케이션에 대한 액세스를 제한 할 수 있습니다 앱별로. 내 응용 프로그램의 web.xml을 사용하여이 작업을 수행 할 수 있습니까? 또는 context.xml에 추가 규칙을 추가하면됩니까?

감사합니다,

-B


재현하면서 해결 방법 :

$ cp /var/lib/tomcat6/conf/context.xml \ 
    /var/lib/tomcat6/conf/Catalina/localhost/my-app-name.xml 

$ cat /var/lib/tomcat6/conf/Catalina/localhost/my-app-name.xml 

<Context> 
    <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="localhost"/> 
... {as previously} ... 
</Context> 
+0

컨텍스트는 "단일 응용 프로그램"입니다. 각 WAR는 자신 만의 컨텍스트입니다. 어떤 앱의 정의를 사용하고 있습니까? –

답변

9

당신은 애플 리케이션 당신을 위해 개인의 context.xml을 만들 수 있습니다.

이 컨텍스트 configuraion에 톰캣 문서 발췌이다 : 콘텍스트 요소는 명시 적으로 정의 될 수있다 : 컨텍스트 요소 정보가 모든 웹 어플리케이션에 의해 로딩 할 : $CATALINA_HOME/conf/context.xml 파일에서

  • . $CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default 파일에서 해당 호스트의 모든 웹 응용 프로그램이 컨텍스트 요소 정보를로드합니다.
  • 디렉토리의 개별 파일 (.xml 확장자 포함). 확장자가 .xml 이하인 파일의 이름이 컨텍스트 경로로 사용됩니다. 다 레벨 컨텍스트 경로는 #을 사용하여 정의 할 수 있습니다. 문맥 경로가 /foo/bar 인 경우 foo#bar.xml 기본 웹 응용 프로그램은 ROOT.xml이라는 파일을 사용하여 정의 할 수 있습니다.
  • 응용 프로그램에 대한 컨텍스트 파일이 $CATALINA_HOME/conf/[enginename]/[hostname]/에있는 경우에만; 응용 파일 내의 /META-INF/context.xml에있는 개별 파일에 있습니다. 웹 응용 프로그램이 WAR로 패키징 된 경우 /META-INF/context.xml$CATALINA_HOME/conf/[enginename]/[hostname]/으로 복사되고 응용 프로그램의 컨텍스트 경로와 일치하도록 이름이 바뀝니다. 이 파일이 존재하면 새로운 WAR가 더 새로운 /META-INF/context.xml 인 경우 호스트의 appBase에 배치됩니다.
1

허용 localhost은 저에게 적합하지 않았습니다. 대신 RemoteAddrValve을 사용합니다. 일부 시스템에서는 IPv6 주소 (::1과 같은 약식 표기법이 아닌 전체 주소와 일치)를 사용하는 반면, 일부 시스템은 IPv4 주소 (필터는 일치하는 127.0.0.1)를 사용합니다.

<Context> 
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
      allow="0:0:0:0:0:0:0:1,127\.0\.0\.1" /> 
</Context> 

속성 allow은 정규 표현식을 사용하므로 점을 이스케이프 처리해야합니다. explained by Dmitry Negoda으로이 값은 /META-INF/context.xml입니다.

0

다음 경로로 이동하십시오. C : \ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ conf \ Catalina \ localhost \

이 경로 아래에 "manager.xml"파일이 있습니다. 다음과 같은 내용으로

편집 "manager.xml"파일 :

<Valve className="org.apache.catalina.valves.RemoteAddrValve" 
    allow="127.0.0.1,10.100.1.2"/> 

    <!-- Link to the user database we will get roles from 
    <ResourceLink name="users" global="UserDatabase" 
    type="org.apache.catalina.UserDatabase"/> 
    --> 

** * ** * 저장하고 실행하는 서버입니다. ... 알았어. 참고 : 127.0.0.1는 시스템 IP를 의미합니다. 10.100.1.2 - 당신의 친구입니다

관련 문제