0

私の公開Webアプリには、公開されたドキュメントのダイジェストを生成し、サーバー上の構成済みファイルパスに保存するための特別なサーブレットがあります。このサーブレットは、アプリの管理者によって指定されたIPによってのみ使用可能である必要があります。

私の望みは、この種のものがtomcatsセキュリティマネージャーを介して構成できることです(特別なサーブレット/ URLは特定のIP-(範囲)のみを「リッスン」する必要があります)。これは可能ですか?

または一般的に:コードに「セキュリティ」を実装したくありません(サーブレット自体がIPをフィルタリングできます)。コンテナ構成またはシステム構成の問題である必要があります。

だからそれを達成する方法

4

1 に答える 1

1

Tomcatには、パターンに一致するようにすべての要求をフィルタリングするリモートアドレスフィルターバルブがすでに付属しています。単一のURIにフィルタリングを提供するだけでよい場合は、クラスを拡張し、拡張機能にロジックを埋め込むのがおそらく最善です。このようなものは機能するはずです(ローカルでテストされていませんが、アイデアを得ることができるはずです):RequestFilterValve

public class YourValve extends org.apache.catalina.valves.RequestFilterValve {
  public void invoke(Request request, Response response) throws IOException, ServletException {
    if (request.getRequestURI().startsWith("/path/to/your/secure/servlet") {
      process(request.getRequest().getRemoteAddr(), request, response);
    } else {
      // no need to filter anything
    }
  }   
}

リモートアドレスフィルターのドキュメントallowで説明されているように、正規表現を提供するようにこのバルブを構成する必要があります。それは次のようなものかもしれません

<Valve className="YourValve" allow="127\.\d+\.\d+\.\d+"/>
(上記ではローカルホストのみが許可されます)

この記事の4.1章では、バルブの取り付け方法について説明しています。

于 2012-11-26T13:00:13.237 に答える