0

play フレームワークによって提供される secure モジュールを使用しています。今、セキュア モジュールによって保護されているコントローラー メソッドにアクセスして、JSON 応答を取得しようとしています。提供されたログインフォームを使用せずにこのメソッドにアクセスする方法はありますか? たとえば、url パラメーターとしてユーザー名とパスワードを使用する

ありがとう、ジョー

4

1 に答える 1

2

直接ではありません。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 の名前を見つけてください)、ログインしているユーザーが誰であるかを判断したくなるでしょう。

于 2012-07-16T20:47:27.943 に答える