0

我在 Play 2.1.3 项目(Scala)中添加了securesocial,它与deadbolt 配合得很好。

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

我错过了一些配置吗?

谢谢,

编辑: 这是我在操作中使用安全社交和死锁的方式:

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())
}

编辑2:

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
    }
  }
4

0 回答 0