2012-10-02 5 views
2

App Engine의 UserService를 로컬 개발 서버에서 사용하려고하는데 예상대로 작동하지 않습니다. 내 질문에 대한 답변에 대한 포럼을 검색했지만 구체적으로 내 문제를 해결할 수있는 것을 찾을 수 없습니다. 사용자를 가정App Engine 개발 서버가 로그인 한 사용자를 감지하지 못했습니다.

UserService userService = UserServiceFactory.getUserService(); 
if(userService.isUserLoggedIn()) 
    String loginURL = userService.createLoginURL("/mycallbackservlet"); 
else 
    ... do something else 

처음에 로그인하지 않은, 내가 이후로 리디렉션 할 대상 URL로 'mycallbackservlet'를 제공하는 다음과 같이

내가 할 첫번째 일은 UserService에서 로그인 URL을 얻을 수있다 (성공) 로그인. 로그인 절차를 시작하려면 다음과 같이 클라이언트 측에서 GWT 창을 엽니 다.

Window.open(loginURL, "Bla", props); 

loginURL은 위에서 만든 것입니다. 모든 사용자를 입력 할 수있는 로컬 개발 서버의 시뮬레이션 된 로그인 화면이 표시됩니다. 방금 확인을 클릭합니다. 이제 내 콜백 서블릿이 호출 (예상대로)하지만 난 UserService 객체를 검색 할 때 다시는이 로그인 한 사용자 나에게 제공하지 않습니다, 그

UserServiceFactory.getUserService().isUserLoggedIn() 

반환 '거짓'입니다. 어떻게 이럴 수있어? 이 일반적인 개발 서버 동작입니까 또는 내가 뭔가 잘못하고 있습니까? 초기 URL을 다르게, 즉 Window.open()을 사용하지 않고 다른 것으로 열어야합니까?

의견을 보내 주시면 대단히 감사하겠습니다.

답변

0

사용자가 이미 로그인했을 때 로그인 URL을 만드는 것처럼 보입니까?

if(!userService.isUserLoggedIn()) 
    String loginURL = userService.createLoginURL("/mycallbackservlet"); 
0

HttpServletRequest의이 방법은 방법

에게
  • 대해 getRemoteUser (가)
  • 대해 getUserPrincipal()
  • 대해 isUserInRole (문자열 역할)

: 그것은 반대해야하지 그것은 당신의 상황에서 유용 할 수 있습니다.

관련 문제