2012-11-22 30 views
1

我們使用Play 2 authenticate plugin作爲REST API,我想簡單地返回200或403進行登錄嘗試。播放2 Java身份驗證插件 - HTTP狀態碼響應而不是重定向

插件的代碼如下所示:

public static Result loginAndRedirect(final Context context, 
     final AuthUser loginUser) { 
    storeUser(context.session(), loginUser); 
    return Controller.redirect(getJumpUrl(context)); 
} 

有什麼辦法避免重定向不分叉插件項目?

+1

你看過解析器了嗎? https://github.com/joscha/play-authenticate/blob/master/samples/java/Getting%20Started.md#configure-the-resolver –

回答

1

我結束了在該控制器處理這樣的:

public static Result login() { 
    Result r = MyUsernamePasswordAuthProvider.handleLogin(ctx()); 
    if (r instanceof Redirect && PlayAuthenticate.getUser(session()) != null) { 
     return ok(); 
    } 
    return forbidden(); 
} 

可能有更好的方式來做到這一點,雖然。

1

我只是偶然在相同的情況下,並作爲nico_ekito指出,這可以通過擴展PlayAuthenticate.Resolver和壓倒一切的實現:

@Override 
    public Call afterAuth() { 
     return routes.Application.restAfterAuth(); 
    } 

所以,你可以回到你的應用程序中的任何途徑。