3

Je ne suis pas directement connecté à mon application lorsque l'utilisateur clique sur mon lien nav dans la section "Plus" de la barre de navigation universelle de Google dans un compte Google Apps. mon application est montrée.Google Apps Marketplace - Application SSO pour application Google App Engine

Mes applications manifeste du marché:

<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> 

Mon web.xml partie pertinente:

<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> 

Répondre

0

Vous devez créer un servlet pour gérer http://myappid.appspot.com/ms.jsp?hd=${DOMAIN_NAME}. Il obtiendra le nom de domaine et redirigera vers une URL de connexion en utilisant le domaine federatedIdentity. Voir:

http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/users/UserService.html#createLoginURL%28java.lang.String,%20java.lang.String,%20java.lang.String,%20java.util.Set%29

Avec l'ensemble federatedIdentity approprié, l'utilisateur se connectera automatiquement à partir de Google Apps.

0

Aussi. Vous devez ajouter à votre application manifest.xml:

<Edition id="free"> 
    <Name>Myapp Navlink Name</Name> 
    <Extension ref="navLink" /> 
    <Extension ref="realm" /> 
</Edition>