【发布时间】:2015-09-15 07:04:23
【问题描述】:
我正在尝试通过扩展 Security.Authenticator 类来实现 Play 的身份验证。我正在使用 Play 2.4.2 (Damiya),这是我的代码。
public class Secured extends Security.Authenticator{
public Secured() {
Logger.info("In secured constructor....");
}
@Override
public String getUsername(Context context) {
return context.session().get("loggedin_user");
}
@Override
public Result onUnauthorized(Context context) {
return redirect(routes.Application.index());
}
}
我认为扩展 Security.Authenticator 的这个类充当 J2EE 过滤器,拦截每一个请求。但是我没有看到一次构造函数记录器打印出来。如果我误解了 Security.Authenticator 的概念,请纠正我,让我知道它是如何工作的。
我尝试在控制器中的一种操作方法之上使用@Security.Authenticated,尽管抛出了以下编译时错误,但该类甚至没有编译。
package Security does not exist Security.Authenitcated
我猜是缺少某些库,Play 2.4.2 版本中 Play 的 Authentication 过程是否发生了变化?此 Secured 类是否过滤所有检查身份验证的请求?
更新:
在将来自play.mvc.Security.Authenticated 的@Authenticated 注释保留在顶部之后,控制器请求中的操作方法在 Secured 类中被过滤。我注意到每次请求通过 Security 类时,都会打印它的构造函数记录器消息。是否意味着每次创建一个新的 Secured 对象?
【问题讨论】:
标签: playframework playframework-2.0 playframework-2.2