Ниже приведен простой сервлет Google App Engine Standard, который отображает адрес электронной почты Google пользователя, если пользователь вошел в систему. Как я могу вызвать это программно (например, с помощью curl или Java-кода), предоставляя учетные данные Google (например, дляучетная запись пользователя или службы).Я думаю, что мне нужно получить токен OAuth2, но я мог бы использовать некоторую помощь в пошаговом процессе.
package com.example.appengine.java8;
import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
@WebServlet(name = "HelloAppEngine", value = "/hello")
public class HelloAppEngine extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
if(user == null) {
out.print("not authenticated");
}
else {
out.print(user.getEmail());
}
}
}
Вот живая версия этого сервлета:
https://servlet -authentication-test.appspot.com / hello
Вы можете использовать следующую ссылку, чтобы войти в систему с учетной записью Google, а затем получить доступ к сервлету во время аутентификации:
https://accounts.google.com/signin/v2/identifier?service=ah&passive=true&continue=https%3A%2F%2Fappengine.google.com%2F_ah%2Fconflogin%3Fcontinue%3Dhttps%3A%2F%2Fservlet-authentication-test.appspot.com%2Fhello&flowName=GlifWebSignIn&flowEntry=ServiceLogin