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