@Override
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
HttpSession sess = httpServletRequest.getSession();
String oAuth2Token = httpServletRequest.getParameter("token");
String provider = httpServletRequest.getParameter("provider");
if (provider == null || provider.isEmpty()) {
provider = "Google";
}
WebTarget target = client.target(octopusConfig.getSSOServer() + "/OAuth2/user/info");
OAuth2User oAuth2User = target.request()
.accept(MediaType.APPLICATION_JSON)
.header("token", oAuth2Token)
.header("provider", provider)
.get(OAuth2User.class);
try {
oAuth2User.setToken(new Token(oAuth2Token, ""));
SecurityUtils.getSubject().login(oAuth2User);
SavedRequest savedRequest = WebUtils.getAndClearSavedRequest(httpServletRequest);
httpServletResponse.sendRedirect(savedRequest != null ? savedRequest.getRequestUrl() : getRootUrl(httpServletRequest));
} catch (AuthenticationException e) {
sess.setAttribute(OAuth2User.OAUTH2_USER_INFO, oAuth2User);
sess.setAttribute("AuthenticationExceptionMessage", e.getMessage());
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + octopusConfig.getUnauthorizedExceptionPage());
}
}