나는 앱을 개발 중이며 모든 것이 로컬로 잘 작동하고 있습니다. 하지만 PaaS (Jelastic 사용)로 밀어 넣으려고하면 (t2v/play2-auth) 사용중인 인증 모듈이 더 이상 작동하지 않는 것 같습니다. 나는 왜 그런지 전혀 모르고 몇 가지 설명을 원합니다. PaaS를 사용한 것은 처음이자 아직 모든 것을 얻지 못하고 있다고 생각합니다.로그인 페이지로 이동 play2 인증
자세한 내용은 : 로그인을 시도 할 때 로그인이 작동하는 것 같고/home으로 리디렉션되었지만 어떤 이유로 자동으로 로그인 페이지로 리디렉션됩니다. 사용자가 실제로 인증되지 않았기 때문에 의심됩니다. 왜 그런가요?
POST http://app/login [HTTP/1.1 303 See Other 3624ms]
GET http://app/home [HTTP/1.1 303 See Other 53ms]
GET http://app/login [HTTP/1.1 200 OK 107ms]
미리 감사드립니다.
편집 :
type Id = Long
type User = AccessUser
type Authority = Int
val idTag: ClassTag[Id] = classTag[Id]
val sessionTimeoutInSeconds: Int = 3600
def resolveUser(id: Id)(implicit ctx: ExecutionContext): Future[Option[User]] = Future(AccessProvider.find(id))
def goHome: Future[Result] = Future(Redirect(controllers.users.routes.UserSpaceController.home(0)))
def loginSucceeded(request: RequestHeader)(implicit ctx: ExecutionContext): Future[Result] = {
val uri = request.session.get("access_uri").getOrElse(controllers.users.routes.UserSpaceController.home(0).url.toString)
Future.successful(Redirect(uri).withSession(request.session - "access_uri"))
}
def logoutSucceeded(request: RequestHeader)(implicit ctx: ExecutionContext): Future[Result] =
Future.successful(Redirect(controllers.routes.PublicController.index))
def authenticationFailed(request: RequestHeader)(implicit ctx: ExecutionContext): Future[Result] =
Future.successful(Redirect(controllers.users.routes.SecurityController.login).withSession("access_uri" -> request.uri))
def authorizationFailed(request: RequestHeader)(implicit ctx: ExecutionContext): Future[Result] =
Future.successful(Forbidden("no permission"))
def authorize(user: User, authority: Authority)(implicit ctx: ExecutionContext): Future[Boolean] = Future.successful {
(user.permission, authority) match {
some cases
}
}
override lazy val cookieSecureOption: Boolean = play.api.Play.isProd(play.api.Play.current)
소리가 캐싱 문제와 같습니다. ehcache를 사용하고 있습니까? 여러 인스턴스를 실행 중입니까? 'AuthConfig' 특성은 어떻게 생겼습니까? –
@ m-z 답변을 보내 주셔서 감사합니다. 아니요, ehcache를 사용하고 있지 않습니다 (또는 적어도 캐싱을 위해 특별한 설정을하지 않았습니다). AuthConf로 원래 게시물을 편집했습니다. 도움을 주셔서 감사합니다 –
두 가지. 하나는 캐시에 대해 아무 것도 설정하지 않은 경우, 아마도 기본 ehcache 구현을 사용하고있는 것입니다 (분산 환경에서 오류가 발생합니다). 또 다른 사실은 프로덕션 환경에서 'cookieSecureOption'을 true로 설정했지만 URL은 http 만 사용하고 있다는 것입니다. https와'cookieSecureOption = true'를 사용하지 않으면 쿠키가 삭제됩니다. 이는 문제가 될 수 있습니다. –