Dropwizard で Java モジュールをインストールする

Next-Gen WAF Java モジュールは Dropwizard を通じてデプロイすることが可能です。

ダウンロード

Next-Gen WAF Java モジュールを手動でダウンロードするか、Maven でアクセスします。

手動によるダウンロード

  1. 次のいずれかのリンクをクリックして、Java モジュールの最新バージョンをダウンロードしてください。

  2. sigsci-module-java_latest.tar.gzを抽出します。

  3. 次のいずれかのオプションを使用して JAR ファイルをデプロイします。

    • sigsci-module-java-{version}-shaded.jar (すべての依存関係がバンドルされたuber jar) をアプリケーションのクラスパスにコピーします (例: %CATALINA_HOME%\webbapps\<APP_FOLDER>\WEB-INF\lib)。

    • sigsci-module-java-{version}.jar とその依存関係を lib フォルダからアプリケーションのクラスパス (例: %CATALINA_HOME%\webbapps\<APP_FOLDER>\WEB-INF\lib) にコピーします。アプリケーションのクラスパスフォルダー (WEB-INF\lib内の Tomcat) にすでに依存関係の jar ファイルがある場合は、バージョン番号が異なっていてもそれらをコピーする必要はありません。ログ記録の jar はオプションで、slf4j の設定に基づいて決定します。

Maven を使用したアクセス

ビルドまたはデプロイメントに Maven を使用するプロジェクトの場合、プロジェクト pom.xml のファイルに XML を追加することで、最新バージョンの Next-Gen WAF Java モジュールをインストールできます。例:

<repositories>
<repository>
<id>sigsci-stable</id>
<url>https://mvn.security.fastly.com/release/maven2</url>
</repository>
</repositories>
<dependency>
<groupId>com.signalsciences</groupId>
<artifactId>sigsci-module-java</artifactId>
<version>LATEST_MODULE_VERSION</version>
</dependency>

必ず LATEST_MODULE_VERSION を Java モジュールの最新リリースに置き換えてください。最新バージョンは、https://dl.security.fastly.com/sigsci-module-java/VERSION または https://dl.signalsciences.net/sigsci-module-java/VERSION のバージョンファイルで確認できます。

インストールして設定する

Dropwizard は標準の Java サーブレットフィルターをサポートしていますが、フィルタークラスを登録する必要があります。

Dropwizard のサーブレットフィルターサポートに関する追加情報は Dropwizardのドキュメント でご覧いただけます。

Dropwizard フレームワークは内部的に Jetty サーブレットエンジンを使用します。Next-Gen WAF Java モジュールは servlet filters を提供します。

Dropwizard アプリケーションクラスを拡張するクラス内の run メソッドの例

import com.signalsciences.servlet.filter.SigSciFilter;
@Override
public void run(final DwizExampleConfiguration configuration, final Environment environment) {
environment.servlets().addFilter("SigSciFilter", new SigSciFilter()).addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
final HelloWorldResource resource = new HelloWorldResource(
"%s",
"Demo value"
);
environment.jersey().register(resource);
}