【发布时间】:2019-03-16 08:19:26
【问题描述】:
我正在尝试向我在 Play 2.7 中构建的 Rest API 添加授权。我为较旧的游戏版本找到了一个很好的例子here,但我无权访问 Http 上下文,因此我无法将用户添加为 arg。
还有其他方法可以在 Play 2.7 中执行 this 而无需访问上下文吗?
public class Secured extends Security.Authenticator {
@Override
public String getUsername(Context ctx) {
String[] authTokenHeaderValues = ctx.request().headers().get(SecurityController.AUTH_TOKEN_HEADER);
if ((authTokenHeaderValues != null) && (authTokenHeaderValues.length == 1) && (authTokenHeaderValues[0] != null)) {
User user = models.User.findByAuthToken(authTokenHeaderValues[0]);
if (user != null) {
ctx.args.put("user", user);
return user.getEmailAddress();
}
}
return null;
}
@Override
public Result onUnauthorized(Context ctx) {
return unauthorized();
}
}
我希望能够从其他控制器中获取用户,就像他们在 Todo 控制器中所做的那样。
编辑:我的问题归结为您在 Play 2.7 中将经过身份验证的用户存储在哪里,因为 Http.Context 已被弃用?
【问题讨论】:
标签: java playframework play-framework-2.7