2012-03-22 13 views
1

セキュアモジュールの動作(関連する場合1.2.4)は、ログインページにリダイレクトされます。これは、ほとんどのWebページで十分です。私はAJAX呼び出しで使用されるいくつかのルートを持っています。これらのために、リダイレクトを返すのではなく、ユーザーが認証されていないときに401を返したいと思います。Playで認証されていない場合に401を返します。

認証が失敗した場合の再生のカスタマイズ方法を教えてください。

答えて

1

セキュアモジュールは最も簡単なプレイモジュールの1つです。独自のより複雑な認証実装を構築できるところから、それを出発点または例として参照しています。したがって、私のアドバイスは、モジュールの内容をプロジェクトに直接コピーすることです(したがって、実際にはモジュールの依存関係を取り除くことになります)。

次に、ほとんどのロジックはSecureという単一のコントローラにあります。たとえば、説明した動作は、メソッドを変更することで簡単に達成できます。メソッドの下のスニペットを見てください - コメントの行が私によって追加されました:

... 
if(validation.hasErrors() || !allowed) { 
    flash.keep("url"); 
    flash.error("secure.error"); 
    params.flash(); 
    // you can check if ("POST".equalsIgnoreCase(request.method)) here... 
    login(); 
} 
... 
+1

aah、nice。私はPlayには新しく、モジュールコードのコピーは考えていませんでした。私が編集したいのはcheckAccessメソッドだと思います。login()を必ずしも呼び出すとは限りません。場合によっては、代わりに401を返すことになります。ありがとう! – nojo

関連する問題