Google Code disponible en: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
Google App Engine ofrece varios servicios útiles basados en la infraestructura de Google a los que se puede acceder a través de aplicaciones utilizando una serie de bibliotecas incluidas en el kit de desarrollo de software (SDK). Uno de ellos es el servicio de usuarios, que te permite integrar tu aplicación con cuentas de usuarios de Google. Con el servicio de usuarios, los usuarios de tu aplicación podrán utilizar sus cuentas de Google existentes para acceder a ella.
Utilizaremos el servicio de usuarios para personalizar el saludo de esta aplicación.
Edita src/guestbook/GuestbookServlet.java según se indica para que se parezca a lo que se muestra a continuación.
package guestbook;
import java.io.IOException;
import javax.servlet.http.*;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
public class GuestbookServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, " + user.getNickname());
} else {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
}
}
}
Si utilizas Eclipse y tu servidor de desarrollo se ejecuta en el depurador, al guardar los cambios realizados en el archivo, Eclipse compila el nuevo código de forma automática y, a continuación, intenta insertarlo en el servidor en ejecución. Los cambios realizados en las clases, JSP, archivos estáticos y appengine-web.xml se reflejan de inmediato en el servidor en ejecución sin necesidad de reiniciar. Si realizas cambios en web.xml u otros archivos de configuración, debes detener e iniciar el servidor para ver los cambios.
Si utilizas Ant, debes detener el servidor y volver a crear el proyecto para ver los cambios realizados en el código fuente. Los cambios realizados en las JPS y archivos estáticos no requieren que se reinicie el servidor.
Vuelve a crear tu proyecto y reinicia el servidor en caso necesario. Para probar la aplicación, visita la URL del servlet en tu navegador:
En lugar de mostrar el mensaje, el servidor te solicita una dirección de correo electrónico. Introduce una dirección de correo electrónico (como, por ejemplo, alfred@example.com y, a continuación, haz clic en "Log In". La aplicación muestra un mensaje que ahora contiene la dirección de correo electrónico que has introducido.
El nuevo código de la clase GuestbookServlet utiliza el API de usuarios para comprobar si el usuario ha accedido con una cuenta de Google. Si no es así, se redirige al usuario a la pantalla de acceso a Cuentas de Google. userService.createLoginURL(...) devuelve la URL de la pantalla de acceso. La función de acceso sabe redirigir al usuario a la aplicación por la URL transferida a createLoginURL(...), que en este caso es la URL de la página actual.
El servidor de desarrollo sabe cómo simular una función de acceso a Cuentas de Google. Si se ejecuta en tu equipo local, se redirige a la página en la que puedes introducir una dirección de correo electrónico para simular un acceso a la cuenta. Si se ejecuta en App Engine, se redirige a la pantalla real de Cuentas de Google.
Ahora has accedido a tu aplicación de prueba. Si vuelves a cargar la página, el mensaje vuelve a aparecer.
Para permitir el acceso al usuario, proporciona un enlace a la pantalla de acceso, generado por el método createLogoutURL(). Ten en cuenta que un enlace de salida no permitirá el acceso del usuario a ninguno de los servicios de Google.
Ahora que sabemos cómo identificar al usuario, podemos invitarlo a publicar mensajes en el libro de invitados. Diseñemos una interfaz de usuario para esta aplicación a través de páginas del servidor Java (JSP).
Para continuar, consulta la sección Uso de JSP.