GWT/GAE(Java):与GAE结合使用时,app.yaml/web.xml用户身份验证和登录/注销实际上不起作用

GWT/GAE(Java):与GAE结合使用时,app.yaml/web.xml用户身份验证和登录/注销实际上不起作用,java,google-app-engine,gwt,authentication,Java,Google App Engine,Gwt,Authentication,我正在使用GWT和GAE(Java)编写一个web应用程序。我非常了解GAE,尤其是Python版本;我不熟悉GWT和GAE的Java版本 我试图设置我的应用程序,以便用户必须登录才能访问;来自app.yaml application: myapp version: 1 runtime: java welcome_files: - index.jsp - index.html handlers: - url: /admin/* # secure: always login: ad

我正在使用GWT和GAE(Java)编写一个web应用程序。我非常了解GAE,尤其是Python版本;我不熟悉GWT和GAE的Java版本


我试图设置我的应用程序,以便用户必须登录才能访问;来自app.yaml

application: myapp
version: 1
runtime: java

welcome_files:
 - index.jsp
 - index.html

handlers:

- url: /admin/*
#  secure: always
 login: admin

- url: /MyApp.html
#  secure: always
 login: required
这似乎会生成一个在主页上有访问限制的web.xml:

 <security-constraint>
   <web-resource-collection>
     <url-pattern>/MyApp.html</url-pattern>
   </web-resource-collection>
   <auth-constraint>
     <role-name>*</role-name>
   </auth-constraint>
 </security-constraint>

我正在使用gwt-2.4.0。

您可以拥有一个servlet(或JSP页面),用于创建注销url并将客户端重定向到该url。

您可以拥有一个servlet(或JSP页面)这将创建一个注销url并将客户端重定向到该url。

来自Google App Engine的便笺演示代码使用RPC,并在服务器端使用以下内容创建链接:

userService.createLogoutURL(userService.createLoginURL("/"))
我还没有试过


更新:我对它进行了测试,效果很好。

Google App Engine的便笺演示代码使用RPC,链接是在服务器端使用以下内容创建的:

userService.createLogoutURL(userService.createLoginURL("/"))
我还没有试过


更新:我对它进行了测试,效果很好。

你的意思是(1)创建一个LogoutServlet,生成注销url,然后向其发出重定向,然后(2)让主页上有一个指向LogoutServlet的“注销”链接?我不明白的是,我们需要点击服务器来生成注销url的目的是什么?我不能直接用手把它交给客户吗?我从userService.createLogoutURL()中得到的注销url似乎没有什么特别之处;也就是说,例如,它似乎不包含用户的一些ID。你知道关于我发布的第二个问题的任何信息吗,这个问题以“另一个奇怪的效果…”开头;也就是说,当用户未登录时,他们如何能够看到页面?app.yaml/web.xml中的约束应该防止这种情况发生,除非还有其他事情发生;可能只是浏览器中剩下的页面和该页面中的JavaScript再次命中服务器。1。是的。你实际上不需要注销。这只是清除服务器上的用户会话。我从不从我的帐户(gmail、twitter等)注销。只有当计算机被多人使用时才需要注销。3.不能说。需要更多检查。你的意思是(1)创建一个LogoutServlet来生成注销url,然后向其发出重定向,然后(2)让主页上有一个指向LogoutServlet的“注销”链接?我不明白的是,我们需要点击服务器来生成注销url的目的是什么?我不能直接用手把它交给客户吗?我从userService.createLogoutURL()中得到的注销url似乎没有什么特别之处;也就是说,例如,它似乎不包含用户的一些ID。你知道关于我发布的第二个问题的任何信息吗,这个问题以“另一个奇怪的效果…”开头;也就是说,当用户未登录时,他们如何能够看到页面?app.yaml/web.xml中的约束应该防止这种情况发生,除非还有其他事情发生;可能只是浏览器中剩下的页面和该页面中的JavaScript再次命中服务器。1。是的。你实际上不需要注销。这只是清除服务器上的用户会话。我从不从我的帐户(gmail、twitter等)注销。只有当计算机被多人使用时才需要注销。3.不能说。需要更多的检查。