List of usage examples for com.google.api.client.googleapis.auth.oauth2 GoogleIdToken getPayload
@Override
public Payload getPayload()
From source file:gplus.java
private void callGoogle(HttpServletRequest request, HttpServletResponse response) throws IOException { ByteArrayOutputStream resultStream = new ByteArrayOutputStream(); try {//from w ww . ja va 2 s.com getContent(request.getInputStream(), resultStream); } catch (IOException ex) { Logger.getLogger(gplus.class.getName()).log(Level.SEVERE, null, ex); } try { code = new String(resultStream.toByteArray(), "UTF-8"); System.out.println(code); } catch (UnsupportedEncodingException ex) { Logger.getLogger(gplus.class.getName()).log(Level.SEVERE, null, ex); } //Create a token try { tokenResponse = new GoogleAuthorizationCodeTokenRequest(TRANSPORT, JSON_FACTORY, CLIENT_ID, CLIENT_SECRET, code, "postmessage").execute(); GoogleIdToken idToken = tokenResponse.parseIdToken(); String gplusId = idToken.getPayload().getSubject(); tokenData = tokenResponse.toString(); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().print(GSON.toJson("Successfully connected user.")); } catch (TokenResponseException e) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.getWriter().print(GSON.toJson("Failed to upgrade the authorization code.")); } catch (IOException e) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.getWriter().print(GSON.toJson("Failed to read token data from Google. " + e.getMessage())); } try { // Build credential from stored token data. GoogleCredential credential = new GoogleCredential.Builder().setJsonFactory(JSON_FACTORY) .setTransport(TRANSPORT).setClientSecrets(CLIENT_ID, CLIENT_SECRET).build() .setFromTokenResponse(JSON_FACTORY.fromString(tokenData, GoogleTokenResponse.class)); // Create a new authorized API client. Plus service = new Plus.Builder(TRANSPORT, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME).build(); // Get a list of people that this user has shared with this app. PeopleFeed people = service.people().list("me", "visible").execute(); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().print(GSON.toJson(people)); System.out.println(people.toString()); } catch (IOException e) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.getWriter().print(GSON.toJson("Failed to read data from Google. " + e.getMessage())); } }
From source file:autenticacion.Autenticador.java
public User validateGoogleToken(String UserToken) { GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(TRANSPORT, JSON_FACTORY) .setAudience(Collections.singletonList(CLIENT_ID)).build(); // (Receive idTokenString by HTTPS POST) GoogleIdToken idToken = null; try {//from w ww . j a va 2 s . com idToken = verifier.verify(UserToken); } catch (GeneralSecurityException | IOException ex) { Logger.getLogger(LoginREST.class.getName()).log(Level.SEVERE, null, ex); } if (idToken != null) { GoogleIdToken.Payload payload = idToken.getPayload(); // Get profile information from payload String email = payload.getEmail(); boolean emailVerified = payload.getEmailVerified(); if (!emailVerified) { System.out.println("Invalid ID token."); return null; } String nombre = (String) payload.get("name"); String apellido = (String) payload.get("family_name"); return new User(nombre, apellido, email); } return null; }
From source file:bg.neutrino.GoogleLogin.java
public User login() throws Exception { DeviceProperties dp = new DeviceProperties(); String CLIENT_ID = dp.get().getProperty("google.oauth2.api.key"); GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jacksonFactory) .setAudience(Collections.singletonList(CLIENT_ID)) // Or, if multiple clients access the backend: // .setAudience(Arrays.asList(CLIENT_ID_1, CLIENT_ID_2, // CLIENT_ID_3)) .build();/* ww w . j a va 2 s . c o m*/ // (Receive idTokenString by HTTPS POST) //System.out.println(idTokenString); GoogleIdToken idToken = null; try { idToken = verifier.verify(idTokenString); } catch (GeneralSecurityException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (idToken != null) { Payload payload = idToken.getPayload(); // Print user identifier String userId = payload.getSubject(); //System.out.println("User ID: " + userId); // Get profile information from payload String email = payload.getEmail(); boolean emailVerified = Boolean.valueOf(payload.getEmailVerified()); String name = (String) payload.get("name"); String pictureUrl = (String) payload.get("picture"); String locale = (String) payload.get("locale"); String familyName = (String) payload.get("family_name"); String givenName = (String) payload.get("given_name"); User user = new User(); user.setId(userId); user.setEmail(email); user.setName(name); user.setIsGuest(false); return user; } else { throw new Exception("Invalid ID token."); } }
From source file:bg.neutrino.GoogleUser.java
public boolean login() { DeviceProperties dp = new DeviceProperties(); String CLIENT_ID = dp.get().getProperty("google.oauth2.api.key"); GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jacksonFactory) .setAudience(Collections.singletonList(CLIENT_ID)) // Or, if multiple clients access the backend: // .setAudience(Arrays.asList(CLIENT_ID_1, CLIENT_ID_2, // CLIENT_ID_3)) .build();//ww w. j a v a 2 s.c om // (Receive idTokenString by HTTPS POST) System.out.println(idTokenString); GoogleIdToken idToken = null; try { idToken = verifier.verify(idTokenString); } catch (GeneralSecurityException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (idToken != null) { Payload payload = idToken.getPayload(); // Print user identifier String userId = payload.getSubject(); System.out.println("User ID: " + userId); // Get profile information from payload String email = payload.getEmail(); boolean emailVerified = Boolean.valueOf(payload.getEmailVerified()); String name = (String) payload.get("name"); String pictureUrl = (String) payload.get("picture"); String locale = (String) payload.get("locale"); String familyName = (String) payload.get("family_name"); String givenName = (String) payload.get("given_name"); return true; } else { System.out.println("Invalid ID token."); } return false; }
From source file:co.carlosandresjimenez.gotit.backend.Utility.java
License:Open Source License
public static String validateGoogleToken(String accessToken) { NetHttpTransport transport = new NetHttpTransport(); JsonFactory mJFactory = new GsonFactory(); GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, mJFactory) .setAudience(Arrays.asList(CLIENT_ID)).build(); GoogleIdToken idToken; Payload payload;//w w w. ja v a2 s . co m String email = ""; try { idToken = verifier.verify(accessToken); if (idToken != null) { //System.out.println("Token validated successfully"); } else { //System.out.println("Invalid ID token."); return "INVALID"; } payload = idToken.getPayload(); if (payload != null) { email = payload.getEmail(); } } catch (GeneralSecurityException gse) { gse.printStackTrace(); return "INVALID"; } catch (IOException ioe) { ioe.printStackTrace(); return "INVALID"; } catch (IllegalArgumentException iae) { iae.printStackTrace(); return "INVALID"; } catch (Exception e) { e.printStackTrace(); return "INVALID"; } return email; }
From source file:co.uk.gauntface.devicelab.appengine.utils.GPlusTokenInfo.java
License:Open Source License
public static String getUserId(String token) { try {//from w w w . ja va 2 s . com JsonFactory jsonFactory = new JacksonFactory(); GoogleIdToken idToken = GoogleIdToken.parse(jsonFactory, token); if (token == null) { return null; } // Verify valid token, signed by google.com, intended for 3P GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier(new NetHttpTransport(), new JacksonFactory()); if (verifier.verify(idToken)) { Payload payload = idToken.getPayload(); return payload.getSubject(); } } catch (GeneralSecurityException e) { } catch (IOException e) { } return null; }
From source file:com.devnexus.ting.web.controller.AndroidLoginController.java
License:Open Source License
/** * This will verify tokens sent from an Authenticated Android device that * the user is who the user says it is./*from ww w .j av a 2 s.c om*/ * <p/> * Additionally it will create an account if one does not exist. */ @RequestMapping(value = "/s/loginAndroid", method = RequestMethod.POST) @ResponseBody public String login(HttpServletRequest request, HttpServletResponse response) { try { AndroidAuthentication auth = GSON.fromJson(request.getReader(), AndroidAuthentication.class); String accessToken = auth.idToken; GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), new JacksonFactory()).setAudience(Arrays.asList(CLIENT_ID)) // If you retrieved the token on Android using the // Play Services 8.3 API or newer, set // the issuer to "https://accounts.google.com". // Otherwise, set the issuer to // "accounts.google.com". If you need to verify // tokens from multiple sources, build // a GoogleIdTokenVerifier for each issuer and try // them both. .setIssuer("https://accounts.google.com").build(); GoogleIdToken idToken = verifier.verify(accessToken); Payload payload = idToken.getPayload(); User user; try { user = (User) userService.loadUserByUsername("google:" + payload.getSubject()); } catch (UsernameNotFoundException e) { user = new User(); user.setEmail(payload.getEmail()); user.setUsername("google:" + payload.getSubject()); user.setUserAuthorities(new HashSet<UserAuthority>(1)); user.getUserAuthorities().add(new UserAuthority(user, AuthorityType.APP_USER)); user.setFirstName((String) payload.get("given_name")); user.setLastName((String) payload.get("family_name")); byte[] password = new byte[16]; new SecureRandom().nextBytes(password); user.setPassword(Arrays.toString(password)); try { userService.addUser(user); } catch (DuplicateUserException ex) { Logger.getLogger(AndroidLoginController.class.getName()).log(Level.SEVERE, null, ex); throw new RuntimeException(ex); } user = (User) userService.loadUserByUsername(user.getUsername()); } MobileSignIn signIn = new MobileSignIn(); signIn.setToken(new BigInteger(512, new SecureRandom()).toString(32)); signIn.setUser(user); user.getMobileTokens().add(signIn); userService.updateUser(user); return "{\"token\":\"" + signIn.getToken() + "\"}"; } catch (IOException | GeneralSecurityException e) { Logger.getAnonymousLogger().log(Level.SEVERE, e.getMessage(), e); throw new RuntimeException(e); } }
From source file:com.example.contactmgr.server.auth.GPlus.java
License:Open Source License
/** * Upgrade given auth code to token, and store it in the session. * POST body of request should be the authorization code. * Example URI: /login?code=/* ww w . j a v a 2 s . c om*/ */ @GET @Path("login") public Response login(@QueryParam("code") String code, @Context HttpServletRequest req, @Context HttpServletResponse res) throws IOException { // already logged in if (AuthFilter.getUser() != null) { try { return Response.temporaryRedirect(new URI(getAppUrl(req))).build(); } catch (URISyntaxException e) { throw new RestException(e); } } try { // Upgrade the authorization code into an access and refresh token. String callbackUri = getCallbackURI(req); GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(TRANSPORT, JSON_FACTORY, CLIENT_ID, CLIENT_SECRET, code, callbackUri).execute(); // You can read the Google user ID in the ID token. // This sample does not use the user ID. GoogleIdToken idToken = tokenResponse.parseIdToken(); String email = idToken.getPayload().getEmail(); User user = appUserSvc.getRegisteredUser(email); if ((user == null) || user.getGoogleId() == null) { // Register new user User newUser = getUserInfo(tokenResponse); try { user = registerUser(newUser); } catch (DuplicateUserException e) { res.sendRedirect("/s/ar.html"); } } AuthFilter.login(user, tokenResponse.toString()); return Response.temporaryRedirect(new URI(getAppUrl(req))).build(); } catch (TokenResponseException e) { throw new RestException(e); } catch (IOException e) { throw new RestException(e); } catch (URISyntaxException e) { throw new RestException(e); } }
From source file:com.example.contactmgr.server.auth.GPlus.java
License:Open Source License
private User getUserInfo(GoogleTokenResponse accessToken) { try {//from w ww. java2 s. c o m // Build credential from stored token data. GoogleCredential credential = new GoogleCredential.Builder().setJsonFactory(JSON_FACTORY) .setTransport(TRANSPORT).setClientSecrets(CLIENT_ID, CLIENT_SECRET).build() .setFromTokenResponse( JSON_FACTORY.fromString(accessToken.toString(), GoogleTokenResponse.class)); // Create a new authorized API client. Plus service = new Plus.Builder(TRANSPORT, JSON_FACTORY, credential).setApplicationName(OAUTH_APP_NAME) .build(); // Get a list of people that this user has shared with this app. Person me = service.people().get("me").execute(); User newUser = new User(); GoogleIdToken idToken = accessToken.parseIdToken(); newUser.setEmailAddress(idToken.getPayload().getEmail()); newUser.setGoogleId(idToken.getPayload().getSubject()); newUser.setFirstName(me.getName().getGivenName()); newUser.setLastName(me.getName().getFamilyName()); String imageUrl = me.getImage().getUrl(); newUser.setImgUrl(imageUrl); return newUser; // PeopleFeed people = service.people().list("me", "visible").execute(); } catch (IOException e) { throw new RestException(e); } }
From source file:com.example.listmaker.server.auth.GPlus.java
License:Open Source License
private User getUserInfo(GoogleTokenResponse accessToken) { try {//from w w w.ja v a2s.c o m // Build credential from stored token data. GoogleCredential credential = new GoogleCredential.Builder().setJsonFactory(JSON_FACTORY) .setTransport(TRANSPORT).setClientSecrets(CLIENT_ID, CLIENT_SECRET).build() .setFromTokenResponse( JSON_FACTORY.fromString(accessToken.toString(), GoogleTokenResponse.class)); // Create a new authorized API client. Plus service = new Plus.Builder(TRANSPORT, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME).build(); // Get a list of people that this user has shared with this app. Person me = service.people().get("me").execute(); User newUser = new User(); GoogleIdToken idToken = accessToken.parseIdToken(); newUser.setEmailAddress(idToken.getPayload().getEmail()); newUser.setGoogleId(idToken.getPayload().getSubject()); newUser.setFirstName(me.getName().getGivenName()); newUser.setLastName(me.getName().getFamilyName()); String imageUrl = me.getImage().getUrl(); newUser.setImgUrl(imageUrl); return newUser; // PeopleFeed people = service.people().list("me", "visible").execute(); } catch (IOException e) { throw new RestException(e); } }