打2的Java身份验证插件 - HTTP状态代码响应,而不是重定向(Play 2 Java aut

2019-10-17 10:03发布

我们正在使用播放2身份验证插件的REST API,我想简单地返回200或403的登录尝试。

该插件的代码如下所示:

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

有什么办法避免重定向不分叉插件项目?

Answer 1:

我结束了在该控制器处理这样的:

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

可能有更好的方式来做到这一点,虽然。



Answer 2:

我只是偶然在相同的情况下,并作为nico_ekito指出,这可以通过扩展实现PlayAuthenticate.Resolver和压倒一切的:

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

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



文章来源: Play 2 Java authenticate plugin - HTTP status code response instead of redirect