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章では、バルブの取り付け方法について説明しています。