package com.example; import java.io.IOException; import java.net.URLDecoder; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name = "login", description = "Trivial login page", urlPatterns = "/login") public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { String redirectURL = req.getParameter("responseurl"); res.setStatus(HttpServletResponse.SC_OK); res.setContentType("text/html"); String formData = "<html>" + "<body>" + "<form action='/login' method='post'>" + "<input type='hidden' name='responseurl' value='" + redirectURL + "'/>" + "<button type='submit' style='font-size:14pt'>Link this service to Google</button>" + "</form>" + "</body>" + "</html>"; res.getWriter().print(formData); res.getWriter().flush(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException { // Here, you should validate the user account. // In this sample, we do not do that. String redirectURL = URLDecoder.decode(req.getParameter("responseurl"), "UTF-8"); res.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); res.setHeader("Location", redirectURL); res.getWriter().flush(); } }