2010-08-04 2 views
1

J'ai récemment déployé un projet Roo/Gwt sur Google App Engine.Ajout d'un système d'authentification dans un projet Roo/Gwt déployé

J'ai passé quelques heures mais je n'ai pas trouvé de tutoriel qui montre, étape par étape, comment on peut ajouter un système d'authentification (avec l'API de connexion fédérée).

Je trouve this very good article qui fournit un code utile:

import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.HashMap; 
import java.util.HashSet; 
import java.util.Map; 
import java.util.Set; 

import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import com.google.appengine.api.users.User; 
import com.google.appengine.api.users.UserService; 
import com.google.appengine.api.users.UserServiceFactory; 

@SuppressWarnings("serial") 
public class OpenIdDemoServlet extends HttpServlet { 

    private static final Map<String, String> openIdProviders; 
    static { 
     openIdProviders = new HashMap<String, String>(); 
     openIdProviders.put("Google", "google.com/accounts/o8/id"); 
     openIdProviders.put("Yahoo", "yahoo.com"); 
     openIdProviders.put("MySpace", "myspace.com"); 
     openIdProviders.put("AOL", "aol.com"); 
     openIdProviders.put("MyOpenId.com", "myopenid.com"); 
    } 

    @Override 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException { 
     UserService userService = UserServiceFactory.getUserService(); 
     User user = userService.getCurrentUser(); // or req.getUserPrincipal() 
     Set<String> attributes = new HashSet(); 

     resp.setContentType("text/html"); 
     PrintWriter out = resp.getWriter(); 

     if (user != null) { 
      out.println("Hello <i>" + user.getNickname() + "</i>!"); 
      out.println("[<a href=\"" 
        + userService.createLogoutURL(req.getRequestURI()) 
        + "\">sign out</a>]"); 
     } else { 
      out.println("Hello world! Sign in at: "); 
      for (String providerName : openIdProviders.keySet()) { 
       String providerUrl = openIdProviders.get(providerName); 
       String loginUrl = userService.createLoginURL(req 
         .getRequestURI(), null, providerUrl, attributes); 
       out.println("[<a href=\"" + loginUrl + "\">" + providerName + "</a>] "); 
      } 
     } 
    } 
} 

Comment puis-je configurer ce module d'authentification? Où dois-je mettre ce code car il n'y a pas de fichier "main.java"?

Merci beaucoup,

Cordialement

Répondre

1

C'est en cours à mettre en œuvre pour GWT 2.1/Roo 1.1.0. Voir ce pour plus de détails https://jira.springsource.org/browse/ROO-1003

Si vous ne pouvez pas attendre, vérifier la sécurité du printemps à l'article Google App Engine, à http://blog.springsource.com/2010/08/02/spring-security-in-google-app-engine/ Cette approche est pas pris en charge par Roo si (une fois que vous modifiez le code généré, il sera plus difficile, mais toujours possible, de continuer à utiliser Roo)

+0

Donc, il n'y a aucun moyen de sécuriser une application Roo/Gwt déployée? – Zakaria

Questions connexes