当我点击 Google Apps 帐户中 Google 通用导航栏“更多”部分中的 navLink 时,我没有直接登录到我的应用程序,而是显示了我的应用程序的登录页面。
我的应用市场 list :
<ApplicationManifest xmlns="http://schemas.google.com/ApplicationManifest/2009">
<Name>App Name</Name>
<Description>App Description</Description>
<!-- Administrators and users will be sent to this URL for application support -->
<Support>
<Link rel="support" href="http://myappid.appspot.com/help.html" />
</Support>
<!-- Show this link in Google's universal navigation for all users -->
<Extension id="navLink" type="link">
<Name>Myapp Navlink Name</Name>
<Url>http://myappid.appspot.com/ms.jsp?hd=${DOMAIN_NAME}</Url>
</Extension>
<!-- Declare our OpenID realm so our app is white listed -->
<Extension id="realm" type="openIdRealm">
<Url>http://myappid.appspot.com/</Url>
</Extension>
</ApplicationManifest>
我的 web.xml 相关部分:
<servlet>
<servlet-name>loginJsp</servlet-name>
<jsp-file>/login.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>loginJsp</servlet-name>
<url-pattern>/_ah/login_required</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>ms</web-resource-name>
<url-pattern>/ms.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
最佳答案
您需要创建一个 servlet 来处理 http://myappid.appspot.com/ms.jsp?hd=${DOMAIN_NAME}
。它将获取域名并使用域作为 federatedIdentity
重定向到登录 url。见:
通过适当的 federatedIdentity
设置,用户将从 Google Apps 自动登录。
关于google-app-engine - Google Apps Marketplace - Google App Engine Java 应用程序的单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431662/