play フレームワークによって提供される secure モジュールを使用しています。今、セキュア モジュールによって保護されているコントローラー メソッドにアクセスして、JSON 応答を取得しようとしています。提供されたログインフォームを使用せずにこのメソッドにアクセスする方法はありますか? たとえば、url パラメーターとしてユーザー名とパスワードを使用する
ありがとう、ジョー
play フレームワークによって提供される secure モジュールを使用しています。今、セキュア モジュールによって保護されているコントローラー メソッドにアクセスして、JSON 応答を取得しようとしています。提供されたログインフォームを使用せずにこのメソッドにアクセスする方法はありますか? たとえば、url パラメーターとしてユーザー名とパスワードを使用する
ありがとう、ジョー
直接ではありません。Secure モジュールは、UI ベースの認証用に設計されています。とは言っても、HTTP 認証を使用してコントローラーの周りにセキュリティを構築するのは非常に簡単です。
これを機能させる方法のユースケースに応じて、いくつかのオプションがあります。RESTful Web サービスを構築している場合は、HTTP Auth を使用するのがよい方法かもしれませんが、AJAX を使用している場合は、ログイン ページを既に使用している場合は、Cookie を確認することで解決する可能性があります。
オブジェクトを見るHttp.Request
と、ユーザー名とパスワードの両方のフィールドが含まれていることがわかります。これらは特に HTTP 認証に使用されます。したがって、次のことを行うアクションを持つことができます
public static void myJSONAction() {
if ("secretuser".equals(request.user) && "secret".equals(request.password)) {
// do some JSON
}
else {
// tell them they are not authorised to this content
unauthorized( "Secret Realm" );
}
}
または、JSON が Web サイトで AJAX として使用されている場合は、セキュア モジュールの Cookie をチェックして (ソースを参照して Cookie の名前を見つけてください)、ログインしているユーザーが誰であるかを判断したくなるでしょう。