我们正在使用播放2身份验证插件的REST API,我想简单地返回200或403的登录尝试。
该插件的代码如下所示:
public static Result loginAndRedirect(final Context context,
final AuthUser loginUser) {
storeUser(context.session(), loginUser);
return Controller.redirect(getJumpUrl(context));
}
有什么办法避免重定向不分叉插件项目?
我结束了在该控制器处理这样的:
public static Result login() {
Result r = MyUsernamePasswordAuthProvider.handleLogin(ctx());
if (r instanceof Redirect && PlayAuthenticate.getUser(session()) != null) {
return ok();
}
return forbidden();
}
可能有更好的方式来做到这一点,虽然。
我只是偶然在相同的情况下,并作为nico_ekito指出,这可以通过扩展实现PlayAuthenticate.Resolver
和压倒一切的:
@Override
public Call afterAuth() {
return routes.Application.restAfterAuth();
}
所以,你可以回到你的应用程序中的任何途径。
文章来源: Play 2 Java authenticate plugin - HTTP status code response instead of redirect