你能把这个Security.Authenticator的例子转换成scala吗?

你能把这个Security.Authenticator的例子转换成scala吗?,scala,authentication,playframework-2.0,Scala,Authentication,Playframework 2.0,这是一个正在使用的身份验证实现示例: package controllers; import play.*; import play.mvc.*; import play.mvc.Http.*; import models.*; public class Secured extends Security.Authenticator { @Override public String getUsername(Context ctx) { return ctx

这是一个正在使用的身份验证实现示例:

package controllers;

import play.*;
import play.mvc.*;
import play.mvc.Http.*;

import models.*;

public class Secured extends Security.Authenticator {

    @Override
    public String getUsername(Context ctx) {
        return ctx.session().get("email");
    }

    @Override
    public Result onUnauthorized(Context ctx) {
        return redirect(routes.Application.login());
    }
}
但这是用Java编写的,我需要将其转换为Scala。这是我尝试过的,但不起作用。无法找到重定向方法

package controllers

import play.mvc.Security
import play.mvc.Http.Context
import play.mvc.Result
import play.mvc.Results.Redirect

class Secured extends Security.Authenticator {

  override def getUsername(ctx: Context) : String = {
    "username_placeholder"
  }

  override def onUnauthorized(ctx: Context) : Result = {
    // Cannot find reference to redirect!
    redirect(routes.Application.index())
  }

}

重定向实际上是一个超类中的静态方法。因此,我尝试创建一个同伴对象,用未授权的def进行保护。但是这样做不起作用。

您应该能够调用重定向,就好像
重定向
所在的类是一个对象:
play.mvc.Results.redirect(…)
(假设您没有在其他地方寻找任何其他可能的重载)。

谢谢您的否决票