2011-03-07 36 views
12

私はいくつかのWebアプリケーションを提供するためにTomcat 6を実行しています。しかし、私はへのアクセスを1つの webappに制限して、localhostからの接続のみを許可したいと思います。Tomcat:ローカルホストへのアクセスを/ webappのために制限する

しかし、私は上のアクセスを制限する方法を見つけ出すことはできません。で説明したように

私はのcontext.xmlでバルブを使用して、すべて Webアプリケーションへのアクセスを制限することができますアプリごとに私のアプリの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上のTomcatのドキュメントからの抜粋である: コンテキスト要素が明示的に定義することができる。

  • $CATALINA_HOME/conf/context.xmlファイルで:コンテキスト要素情報は、すべてのWebアプリケーションによってロードされます。 ファイル:$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.defaultファイル:コンテキスト要素情報は、そのホストのすべてのWebアプリケーションによって読み込まれます。
  • ディレクトリの個々のファイル(拡張子は.xml)。ファイル名(.xml以下)がコンテキストパスとして使用されます。多レベルコンテキストパスは、#を使用して定義することができる。コンテキストパスが/foo/barの場合はfoo#bar.xmlです。デフォルトのWebアプリケーションは、ROOT.xmlというファイルを使用して定義できます。
  • $CATALINA_HOME/conf/[enginename]/[hostname]/にアプリケーションのコンテキストファイルが存在しない場合のみ。アプリケーションファイル内の個別ファイル/META-INF/context.xmlに保存してください。 WebアプリケーションがWARとしてパッケージ化されている場合、/META-INF/context.xml$CATALINA_HOME/conf/[enginename]/[hostname]/にコピーされ、アプリケーションのコンテキストパスに合わせて名前が変更されます。このファイルが存在すると、新しいWARが新しい/META-INF/context.xmlのものがホストのappBaseに置かれた場合、このファイルは置き換えられません。
1

許可するlocalhostは私にとっては機能しませんでした。代わりにRemoteAddrValveを使用します。一部のシステムではIPv4アドレスを使用しています(フィルタは一致する必要があります。127.0.0.1)。他のIPv6アドレスはIPv6アドレスを使用します(::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 - あなたの仲間です