UserService.createLoginURL导致“您请求的页面无效”。错误

时间:2011-04-01 21:09:52

标签: google-app-engine authentication

我正在使用UserService重定向到登录页面:

String loginURL = userService.createLoginURL(request.getRequestURI());
throw new ModelAndViewDefiningException(new ModelAndView(new RedirectView(loginURL, false)));

这导致URL如:

https://www.google.com/accounts/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%253Fcontinue%253Dhttp://www.example.com/logingoogle.htm&ltmpl=gm&ahname=example&sig=5291e6bad7249c73c4968655133c87c5

(示例=我的域名)

当某人被重定向时,Google会显示错误的页面:

  

您请求的页面无效。

任何想法我做错了什么? 这太烦人了,我试图找到解决方案 - 没有任何运气。

GAE JDK 1.4.3(Java)

正在发生这种情况

完全相同的代码在版本1.3.2中工作,过了一段时间我决定再次使用GAE,升级库...现在我遇到登录问题。

1 个答案:

答案 0 :(得分:1)

今天我用GAE 1.6.3遇到了这个问题。

登录不适用于您在上面提供的网址:

https://www.google.com/accounts/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%253Fcontinue%253Dhttp://www.example.com/logingoogle.htm&ltmpl=gm&ahname=example&sig=5291e6bad7249c73c4968655133c87c5

但如果您将“ https://www.google.com/accounts/ServiceLogin?”替换为“ https://accounts.google.com/ServiceLogin?< / em>“喜欢这个:

https://accounts.google.com/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%253Fcontinue%253Dhttp://www.example.com/logingoogle.htm&ltmpl=gm&ahname=example&sig=5291e6bad7249c73c4968655133c87c5

不幸的是,无法修改URL,因为它是由UserService生成的。 但我可以让我的应用程序以这种方式生成第二个URL:

我的应用程序的默认页面最初通过“jsp:forward”将请求定向到控制器,检查用户是否已登录。我已更改了我的应用程序,以便控制器首先处理请求(没有先前的前锋)。这解决了我的问题。但我无法解释这种不端行为背后的原因。