Frage

Ich habe kürzlich ein Roo/GWT -Projekt in Google App Engine bereitgestellt.

Ich habe ein paar Stunden verbracht, konnte aber kein Tutorial finden, das Schritt für Schritt zeigt, wie wir ein Authentifizierungssystem hinzufügen können (mit der Föderierten -Anmelde -API).

ich fand Dieser sehr gute Artikel Das bietet einen hilfreichen Code:

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>] ");
            }
        }
    }
}

Wie kann ich dieses Authentifizierungsmodul einrichten? Wo soll ich diesen Code einsetzen, weil es keine "main.java" -Datei gibt?

Vielen Dank,

Grüße

War es hilfreich?

Lösung

Dies ist für GWT 2.1/roo 1.1.0 im Gange zu werden. Weitere Informationen finden Sie in dies https://jira.springource.org/browse/roo-1003

Wenn Sie es kaum erwarten können, überprüfen Sie die Spring Security in Google App Engine -Artikel unter http://blog.springource.com/2010/08/02/spring-security-in-google-app-engine/Dieser Ansatz wird jedoch nicht von Roo unterstützt (sobald Sie den generierten Code ändern, wird es schwieriger, aber immer noch möglich, weiterhin Roo zu verwenden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top