2011-09-08 4 views
0
user.displayName 사용자가 인증 할 때 user.displayName을 세션에 저장합니다.

템플릿에서 세션 데이터 렌더링이 잘못되었습니다.

session.put("udn", user.displayName); 

템플릿은 다음과 같이 렌더링합니다.

${session.udn} 

하지만 이상한 일이 발생합니다 :

    "Sam" "샘"을 표시하십시오.
  1. 로그 아웃;
  2. "Jim"으로
  3. 로그인, "Sam"으로 표시!
  4. 다시 시작 재생;
  5. "Jim"으로
  6. 로그인, "Jim"으로 표시;
  7. 로그 아웃;
  8. "Sam"으로
  9. 로그인, "Jim"도 표시하십시오!

즉, 항상 첫 번째 로그인 한 사용자의 displayName을 표시합니다.

Logger.debug("udn:\t" + session.get("udn"));

올바르게 인쇄됩니다.

  • 로 로그인하면 "udn : Sam"이 인쇄됩니다.

PLAY_SESSION에는 %00udn%3A + %00가 포함되어 있습니다.

  • Sam으로 로그인하면 PLAY_SESSION에 %00udn%3ASam%00
  • 이 포함됩니다.
  • Jim으로 로그인, PLAY_SESSION에 %00udn%3AJim%00

올바른 값을 표시하려면 어떻게해야합니까? (내 플레이 앱은 1.2.3 & 보안 모듈에 따라 다름)

답변

0

템플릿에 ${session.get("udn")}을 사용해야합니다. implicitsession 변수는 단지 play.mvc.Scope.Session의 인스턴스입니다. ${session.udn}과 같은 구문을 허용하는 마법은 없습니다. 나는 왜 그것이 전혀 인쇄되지 않는지 모르겠다.

관련 문제