Playframework SecureSocial将全部重定向到OnlogingTo-播放2.1

Playframework SecureSocial将全部重定向到OnlogingTo-播放2.1,playframework,playframework-2.0,securesocial,Playframework,Playframework 2.0,Securesocial,我将securesocial添加到Play2.1.3项目(Scala)中,它可以很好地处理死锁 我希望未经验证的请求被重定向到登录页面,并在登录后返回到它们请求的原始URL。但是,在这种情况下,在登录之后,它们总是被发送到onLoginGoToin securesocial.conf中定义的路径,而不管它们在登录之前请求的页面是什么 我是否缺少一些配置 谢谢 编辑: 以下是我在行动中如何使用带锁销的securesocial: def list = Pattern("products.list",

我将securesocial添加到Play2.1.3项目(Scala)中,它可以很好地处理死锁

我希望未经验证的请求被重定向到登录页面,并在登录后返回到它们请求的原始URL。但是,在这种情况下,在登录之后,它们总是被发送到onLoginGoToin securesocial.conf中定义的路径,而不管它们在登录之前请求的页面是什么

我是否缺少一些配置

谢谢

编辑: 以下是我在行动中如何使用带锁销的securesocial:

def list = Pattern("products.list", PatternType.EQUALITY, new MyDeadboltHandler) {
  SecuredAction { implicit request =>
    Ok(views.html.products.list(Product.listAll))
  }
}
以及myDeadboltHandler中的onAuthFailure:

def onAuthFailure[A](request: Request[A]): Result = {
  Logger.debug("authentication failure")
  Results.Redirect(securesocial.controllers.routes.LoginPage.login())
}
EDIT2:

implicit def username(implicit request: RequestHeader):Option[Identity] = SecureSocial.currentUser
override def getSubject[A](request: Request[A]): Option[Subject] = {
    val maySession = username(request)
    maySession match {
       case Some(session) => Some(new User(session.identityId.userId))
       case _ => None
    }
  }

不知道你是如何使用它的门闩。您看过示例应用程序吗?“它应该是这样工作的。”乔治。谢谢你的评论和这么棒的插件。我用更多的细节编辑了我的问题。我认为原始url应该存储在cookie中,但除了id之外,我看不到任何cookie。如果用户未经身份验证,MyDeadboltHandler会做什么?可能是您无法执行SecuredAction实现。SecureSocial在那里保存用户试图访问的url。@Jorge:我编辑了这个问题。在没有用户的情况下,它返回一个“None”来告诉Deadbolt没有有效的用户。