List of usage examples for com.google.api.client.googleapis.auth.oauth2 GoogleIdTokenVerifier verify
public GoogleIdToken verify(String idTokenString) throws GeneralSecurityException, IOException
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;/* ww w . ja v a2 s. c o m*/ try { 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:bean.LoginBean.java
public void googleLogin() { Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext() .getRequestParameterMap();//from www .j a v a 2 s . c om String tokenId = params.get("token"); String email = params.get("email"); String firstName = params.get("first_name"); String lastName = params.get("last_name"); try { GsonFactory jsonFactory = new GsonFactory(); NetHttpTransport transport = new NetHttpTransport(); GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory) .setAudience(Collections.singletonList( "640461808271-qlamo36cn4t9c2k6s4ujggf96smmvhfh.apps.googleusercontent.com")) .build(); GoogleIdToken idToken = verifier.verify(tokenId); if (idToken != null) { User usr = UserDAO.findByGEmail(email); if (usr == null) { usr = UserDAO.registerG(email, firstName, lastName); } if (usr != null) { loggedIn = true; currentUser = usr; username = currentUser.getUsername(); gLogin = true; UserDAO.logDateTime(usr); messages = MessageDAO.getForUserAndDelete(usr); for (Message msg : messages) { switch (msg.getType()) { case "reserved": FacesContext.getCurrentInstance().addMessage("userNotifications", new FacesMessage(FacesMessage.SEVERITY_WARN, "Notification:", "The event you have reserved a ticket for: " + msg.getEvent().getEventName() + " has been cancelled.")); break; case "sold": FacesContext.getCurrentInstance().addMessage("userNotifications", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Notification:", "The event you have bought a ticket for: " + msg.getEvent().getEventName() + " has been cancelled.")); break; case "performer": FacesContext.getCurrentInstance().addMessage("userNotifications", new FacesMessage(FacesMessage.SEVERITY_WARN, "Notification:", "The event you have a ticket for: " + msg.getEvent().getEventName() + " has changed it's lineup.")); break; case "timetable": FacesContext.getCurrentInstance().addMessage("userNotifications", new FacesMessage(FacesMessage.SEVERITY_WARN, "Notification:", "The event you have a ticket for: " + msg.getEvent().getEventName() + " has changed it's timetable.")); break; } } try { FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml"); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { Logger.getLogger(LoginBean.class.getName()).log(Level.SEVERE, null, ex); } } else { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error:", "Your email already exists in the system, try logging in without google!")); } } else { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error:", "There has been an error with your token validation!")); } } catch (GeneralSecurityException | IOException ex) { Logger.getLogger(LoginBean.class.getName()).log(Level.SEVERE, null, ex); } }
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();//from w w w . j av a 2 s .co 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();/* w ww . j a v a 2s .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"); 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;//w w w.ja v a2 s .c om Payload payload; 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 {// w w w . j a v a 2 s . c om 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 w w w.j a v a 2s .c o m * <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.keybox.manage.action.LoginAction.java
License:Apache License
/** * Validates fields for auth submit/*from w w w . ja v a 2 s .c o m*/ */ public void validateLoginSubmit() { if (auth.getUsername() == null || auth.getUsername().trim().equals("")) { addFieldError("auth.username", "Required"); } if ((auth.getPassword() == null || auth.getPassword().trim().equals("")) && (auth.getOauthToken() == null || auth.getOauthToken().equals(""))) { addFieldError("auth.password", "Required"); } // validate auth token if (auth.getOauthToken() != null && !auth.getOauthToken().equals("")) { String idTokenString = auth.getOauthToken(); GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(new ApacheHttpTransport(), new JacksonFactory()).setAudience(Arrays.asList(AppConfig.getProperty("googleClientId"))) .setIssuer(AppConfig.getProperty("googleIssuer")).build(); GoogleIdToken idToken = null; try { idToken = verifier.verify(idTokenString); } catch (GeneralSecurityException | IOException e) { loginAuditLogger.error("Token Verify Exception: " + e); addActionError(AUTH_ERROR); } if (idToken == null) { addActionError("Invalid Token"); } } }
From source file:com.lanastara.gtd.google.GoogleAuthenticator.java
@Override protected boolean authenticate(Request request, Response response) { GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), new JacksonFactory()).setAudience( Arrays.asList("926615361246-oggengfh02hmjhjes5ki04pfin8m0hqa.apps.googleusercontent.com")) .build();// www . j av a 2 s. c om Series<Cookie> cookies = request.getCookies(); Cookie token_cookie; if ((token_cookie = cookies.getFirst("id_token")) != null) { try { GoogleIdToken idToken = verifier.verify(token_cookie.getValue()); if (idToken != null) { GoogleIdToken.Payload payload = idToken.getPayload(); if (payload.getEmailVerified()) { request.getClientInfo().setUser(new User(payload.getEmail())); return true; } } } catch (GeneralSecurityException | IOException ex) { Logger.getLogger(GoogleAuthenticator.class.getName()).log(Level.SEVERE, null, ex); } } response.setStatus(Status.CLIENT_ERROR_UNAUTHORIZED); return false; }
From source file:com.rse.middleware.GoogleTokenVerifier.java
public Payload verify(String token) { try {/*from w ww.jav a2s. c om*/ String CLIENT_ID = this.CLIENT_ID; NetHttpTransport transport = new NetHttpTransport(); List mClientIDs = Arrays.asList(CLIENT_ID); JsonFactory jsonFactory = new GsonFactory(); GoogleIdTokenVerifier verifier; String mProblem = "Verification failed. (Time-out?)"; String mAudience = this.CLIENT_ID; verifier = new GoogleIdTokenVerifier(transport, jsonFactory); Payload payload = null; GoogleIdToken idToken = GoogleIdToken.parse(jsonFactory, token); if (verifier.verify(idToken)) { GoogleIdToken.Payload tempPayload = idToken.getPayload(); System.out.println(tempPayload.getAudience()); System.out.println(tempPayload.getIssuee()); System.out.println(tempPayload.getIssuer()); System.out.println(tempPayload.get("email")); if (!tempPayload.getAudience().equals(mAudience)) { mProblem = "Audience mismatch"; } else if (!mClientIDs.contains(tempPayload.getIssuee())) { mProblem = "Client ID mismatch"; } else { payload = tempPayload; } } else { System.out.println("Invalid ID token."); } return payload; } catch (GeneralSecurityException e) { System.out.println("Security issue: " + e.getLocalizedMessage()); } catch (IOException e) { System.out.println("Network problem: " + e.getLocalizedMessage()); } catch (IllegalArgumentException e) { System.out.println("Token Problem: " + e.getLocalizedMessage()); } catch (Exception e) { System.out.println("Exception: " + e.getLocalizedMessage()); } return null; }