ドキュメント

§IPフィルター

Playは、リクエストのIPアドレスに基づいてリソースへのアクセスを許可または拒否するIPフィルターを提供します。これは、ホワイトリストとブラックリストで設定されます。

§IPフィルターの有効化

IPフィルターを有効にするには、`application.conf`に追加します。

play.filters.enabled += play.filters.ip.IPFilter

§IPアドレスのホワイトリスト化

空でない場合、リクエストは、そのIPアドレスがホワイトリストに存在する場合にのみ許可されます。

# IPv4 and IPv6 adresses allowed in different notations
play.filters.ip.whiteList = [ "192.168.0.1", "8f:f3b:0:0:0:0:0:ff", "2001:cdba::3257:9652", "2001:cdba:0000:0000:0000:0000:3257:9653" ]

§IPアドレスのブラックリスト化

ブラックリストは、ホワイトリストが空の場合にのみ有効です。空でない場合、リクエストは、そのIPアドレスがブラックリストに存在する場合に拒否されます。

# The black list is only active if the whitelist is empty,
# otherwise it will be ignored.
# IPv4 and IPv6 adresses allowed in different notations
play.filters.ip.blackList = [ "192.168.0.1", "8f:f3b:0:0:0:0:0:ff", "2001:cdba::3257:9652", "2001:cdba:0000:0000:0000:0000:3257:9653" ]

§HTTPステータスコード

IPフィルターによってブロックされた禁止されたリクエストのデフォルトのHTTPステータスコードは`403 Forbidden`です。

次の設定を使用して、返されるHTTPステータスをカスタマイズできます。

# 401 Unauthorized
play.filters.ip.accessDeniedHttpStatusCode = 401

§ルート修飾子によるフィルターの選択的無効化

Playが提供するデフォルトの設定を使用していて、ホワイトリストまたはブラックリストが定義されている場合、IPフィルターはすべてのリクエストのIPをチェックします。フィルターを適用したくない個々のルートがある場合があり、その場合はルート修飾子の構文を使用して`anyip`ルート修飾子を使用できます。

`conf/routes`ファイルで

+ anyip
GET     /path1         controllers.HomeController.myAction

これにより、`GET /path1`ルートがIPフィルターから除外され、IPがホワイトリストまたはブラックリストに登録されているかどうかに関係なく、常にルートへのアクセスが許可されます。

IPフィルターで使用可能なすべての構成オプションは、Playフィルターの`reference.conf`にあります。この参照confでわかるように、ルート修飾子のブラックリストのみを定義することで、ルート修飾子の動作を逆にすることもできます。つまり、デフォルトではすべてのルートが許可され、`checkip`ブラックリストルート修飾子などを導入することで、特定のルートのみをチェックできます。

次へ: モジュールによるPlayの拡張


このドキュメントにエラーが見つかりましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインを読んだ後、プルリクエストを送信して自由に貢献してください。ご質問やアドバイスがありましたら、コミュニティフォーラムにアクセスして、コミュニティとの会話を開始してください。