Программный доступ к сервлету Google App Engine Standard, который требует входа в Google - PullRequest
0 голосов
/ 13 декабря 2018

Ниже приведен простой сервлет 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

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете использовать GoogleAuthorizationCodeFlow из клиентской библиотеки Google API, чтобы сгенерировать запрос обратного вызова в Google для обработки входа в учетную запись Google.Для подробного примера вы можете взглянуть на эту документацию или на GitHub для исходного кода .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...