2012-11-22 22 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(); 
    } 

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