@Override protected BrokeredIdentityContext doGetFederatedIdentity(String accessToken) { log.debug("doGetFederatedIdentity()"); try { String URL = PROFILE_URL + "&access_token=" + accessToken + "&key=" + getConfig().getKey(); if (log.isDebugEnabled()) { log.debug("StackOverflow profile request to: " + URL); } JsonNode profile = JsonSimpleHttp.asJson(SimpleHttp.doGet(URL)).get("items").get(0); BrokeredIdentityContext user = new BrokeredIdentityContext(getJsonProperty(profile, "user_id")); String username = extractUsernameFromProfileURL(getJsonProperty(profile, "link")); user.setUsername(username); user.setName(unescapeHtml3(getJsonProperty(profile, "display_name"))); // email is not provided // user.setEmail(getJsonProperty(profile, "email")); user.setIdpConfig(getConfig()); user.setIdp(this); AbstractJsonUserAttributeMapper.storeUserProfileForMapper(user, profile, getConfig().getAlias()); return user; } catch (Exception e) { throw new IdentityBrokerException("Could not obtain user profile from Stackoverflow: " + e.getMessage(), e); } }
@Override protected BrokeredIdentityContext doGetFederatedIdentity(String accessToken) { try { String URL = PROFILE_URL + "?access_token=" + URLEncoder.encode(accessToken, "UTF-8"); if (log.isDebugEnabled()) { log.debug("Microsoft Live user profile request to: " + URL); } JsonNode profile = JsonSimpleHttp.asJson(SimpleHttp.doGet(URL)); String id = getJsonProperty(profile, "id"); String email = null; if (profile.has("emails")) { email = getJsonProperty(profile.get("emails"), "preferred"); } BrokeredIdentityContext user = new BrokeredIdentityContext(id); user.setUsername(email != null ? email : id); user.setFirstName(getJsonProperty(profile, "first_name")); user.setLastName(getJsonProperty(profile, "last_name")); if (email != null) user.setEmail(email); user.setIdpConfig(getConfig()); user.setIdp(this); AbstractJsonUserAttributeMapper.storeUserProfileForMapper(user, profile, getConfig().getAlias()); return user; } catch (Exception e) { throw new IdentityBrokerException("Could not obtain user profile from Microsoft Live ID.", e); } }
@Override protected BrokeredIdentityContext doGetFederatedIdentity(String accessToken) { log.debug("doGetFederatedIdentity()"); try { JsonNode profile = JsonSimpleHttp.asJson(SimpleHttp.doGet(PROFILE_URL).header("Authorization", "Bearer " + accessToken)); BrokeredIdentityContext user = new BrokeredIdentityContext(getJsonProperty(profile, "id")); String username = extractUsernameFromProfileURL(getJsonProperty(profile, "publicProfileUrl")); user.setUsername(username); user.setName(getJsonProperty(profile, "formattedName")); user.setEmail(getJsonProperty(profile, "emailAddress")); user.setIdpConfig(getConfig()); user.setIdp(this); AbstractJsonUserAttributeMapper.storeUserProfileForMapper(user, profile, getConfig().getAlias()); return user; } catch (Exception e) { throw new IdentityBrokerException("Could not obtain user profile from linkedIn.", e); } }
@Override protected BrokeredIdentityContext doGetFederatedIdentity(String accessToken) { try { JsonNode profile = JsonSimpleHttp.asJson(SimpleHttp.doGet(PROFILE_URL).header("Authorization", "Bearer " + accessToken)); BrokeredIdentityContext user = new BrokeredIdentityContext(getJsonProperty(profile, "id")); String username = getJsonProperty(profile, "login"); user.setUsername(username); user.setName(getJsonProperty(profile, "name")); user.setEmail(getJsonProperty(profile, "email")); user.setIdpConfig(getConfig()); user.setIdp(this); AbstractJsonUserAttributeMapper.storeUserProfileForMapper(user, profile, getConfig().getAlias()); return user; } catch (Exception e) { throw new IdentityBrokerException("Could not obtain user profile from github.", e); } }