Example usage for com.google.gson.stream JsonReader nextString

List of usage examples for com.google.gson.stream JsonReader nextString

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader nextString.

Prototype

public String nextString() throws IOException 

Source Link

Document

Returns the com.google.gson.stream.JsonToken#STRING string value of the next token, consuming it.

Usage

From source file:org.mitre.openid.connect.service.impl.AbstractMITREidDataService.java

License:Apache License

protected static Set readSet(JsonReader reader) throws IOException {
    Set arraySet = null;//ww  w .  ja  v a2s .c o m
    reader.beginArray();
    switch (reader.peek()) {
    case STRING:
        arraySet = new HashSet<String>();
        while (reader.hasNext()) {
            arraySet.add(reader.nextString());
        }
        break;
    case NUMBER:
        arraySet = new HashSet<Long>();
        while (reader.hasNext()) {
            arraySet.add(reader.nextLong());
        }
        break;
    default:
        arraySet = new HashSet();
        break;
    }
    reader.endArray();
    return arraySet;
}

From source file:org.mitre.openid.connect.service.impl.AbstractMITREidDataService.java

License:Apache License

protected static Map readMap(JsonReader reader) throws IOException {
    Map map = new HashMap<String, Object>();
    reader.beginObject();/*  ww w .  j av  a2 s .com*/
    while (reader.hasNext()) {
        String name = reader.nextName();
        Object value = null;
        switch (reader.peek()) {
        case STRING:
            value = reader.nextString();
            break;
        case BOOLEAN:
            value = reader.nextBoolean();
            break;
        case NUMBER:
            value = reader.nextLong();
            break;
        }
        map.put(name, value);
    }
    reader.endObject();
    return map;
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader/*from   ww  w. j av  a2 s  .co  m*/
 * @throws IOException
 */
private void readRefreshTokens(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        OAuth2RefreshTokenEntity token = new OAuth2RefreshTokenEntity();
        reader.beginObject();
        Long currentId = null;
        String clientId = null;
        Long authHolderId = null;
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals("id")) {
                    currentId = reader.nextLong();
                } else if (name.equals("expiration")) {
                    Date date = utcToDate(reader.nextString());
                    token.setExpiration(date);
                } else if (name.equals("value")) {
                    String value = reader.nextString();
                    try {
                        token.setJwt(JWTParser.parse(value));
                    } catch (ParseException ex) {
                        logger.error("Unable to set refresh token value to {}", value, ex);
                    }
                } else if (name.equals("clientId")) {
                    clientId = reader.nextString();
                } else if (name.equals("authenticationHolderId")) {
                    authHolderId = reader.nextLong();
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        Long newId = tokenRepository.saveRefreshToken(token).getId();
        maps.getRefreshTokenToClientRefs().put(currentId, clientId);
        maps.getRefreshTokenToAuthHolderRefs().put(currentId, authHolderId);
        maps.getRefreshTokenOldToNewIdMap().put(currentId, newId);
        logger.debug("Read refresh token {}", currentId);
    }
    reader.endArray();
    logger.info("Done reading refresh tokens");
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader/* w w w .  ja  v  a  2 s .c  o m*/
 * @throws IOException
 */
private void readAccessTokens(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        OAuth2AccessTokenEntity token = new OAuth2AccessTokenEntity();
        reader.beginObject();
        Long currentId = null;
        String clientId = null;
        Long authHolderId = null;
        Long refreshTokenId = null;
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals("id")) {
                    currentId = reader.nextLong();
                } else if (name.equals("expiration")) {
                    Date date = utcToDate(reader.nextString());
                    token.setExpiration(date);
                } else if (name.equals("value")) {
                    String value = reader.nextString();
                    try {
                        // all tokens are JWTs
                        token.setJwt(JWTParser.parse(value));
                    } catch (ParseException ex) {
                        logger.error("Unable to set refresh token value to {}", value, ex);
                    }
                } else if (name.equals("clientId")) {
                    clientId = reader.nextString();
                } else if (name.equals("authenticationHolderId")) {
                    authHolderId = reader.nextLong();
                } else if (name.equals("refreshTokenId")) {
                    refreshTokenId = reader.nextLong();
                } else if (name.equals("scope")) {
                    Set<String> scope = readSet(reader);
                    token.setScope(scope);
                } else if (name.equals("type")) {
                    token.setTokenType(reader.nextString());
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        Long newId = tokenRepository.saveAccessToken(token).getId();
        maps.getAccessTokenToClientRefs().put(currentId, clientId);
        maps.getAccessTokenToAuthHolderRefs().put(currentId, authHolderId);
        if (refreshTokenId != null) {
            maps.getAccessTokenToRefreshTokenRefs().put(currentId, refreshTokenId);
        }
        maps.getAccessTokenOldToNewIdMap().put(currentId, newId);
        logger.debug("Read access token {}", currentId);
    }
    reader.endArray();
    logger.info("Done reading access tokens");
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

private OAuth2Request readAuthorizationRequest(JsonReader reader) throws IOException {
    Set<String> scope = new LinkedHashSet<>();
    Set<String> resourceIds = new HashSet<>();
    boolean approved = false;
    Collection<GrantedAuthority> authorities = new HashSet<>();
    Map<String, String> authorizationParameters = new HashMap<>();
    Set<String> responseTypes = new HashSet<>();
    String redirectUri = null;//w w  w  . ja v  a 2  s .c om
    String clientId = null;
    reader.beginObject();
    while (reader.hasNext()) {
        switch (reader.peek()) {
        case END_OBJECT:
            continue;
        case NAME:
            String name = reader.nextName();
            if (reader.peek() == JsonToken.NULL) {
                reader.skipValue();
            } else if (name.equals("authorizationParameters")) {
                authorizationParameters = readMap(reader);
            } else if (name.equals("approvalParameters")) {
                reader.skipValue();
            } else if (name.equals("clientId")) {
                clientId = reader.nextString();
            } else if (name.equals("scope")) {
                scope = readSet(reader);
            } else if (name.equals("resourceIds")) {
                resourceIds = readSet(reader);
            } else if (name.equals("authorities")) {
                Set<String> authorityStrs = readSet(reader);
                authorities = new HashSet<>();
                for (String s : authorityStrs) {
                    GrantedAuthority ga = new SimpleGrantedAuthority(s);
                    authorities.add(ga);
                }
            } else if (name.equals("approved")) {
                approved = reader.nextBoolean();
            } else if (name.equals("denied")) {
                if (approved == false) {
                    approved = !reader.nextBoolean();
                }
            } else if (name.equals("redirectUri")) {
                redirectUri = reader.nextString();
            } else if (name.equals("responseTypes")) {
                responseTypes = readSet(reader);
            } else {
                reader.skipValue();
            }
            break;
        default:
            logger.debug("Found unexpected entry");
            reader.skipValue();
            continue;
        }
    }
    reader.endObject();
    return new OAuth2Request(authorizationParameters, clientId, authorities, approved, scope, resourceIds,
            redirectUri, responseTypes, null);
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader/*from   www.  jav a2s .  co  m*/
 * @return
 * @throws IOException
 */
private SavedUserAuthentication readSavedUserAuthentication(JsonReader reader) throws IOException {
    SavedUserAuthentication savedUserAuth = new SavedUserAuthentication();
    reader.beginObject();

    while (reader.hasNext()) {
        switch (reader.peek()) {
        case END_OBJECT:
            continue;
        case NAME:
            String name = reader.nextName();
            if (reader.peek() == JsonToken.NULL) {
                reader.skipValue();
            } else if (name.equals("name")) {
                savedUserAuth.setName(reader.nextString());
            } else if (name.equals("sourceClass")) {
                savedUserAuth.setSourceClass(reader.nextString());
            } else if (name.equals("authenticated")) {
                savedUserAuth.setAuthenticated(reader.nextBoolean());
            } else if (name.equals("authorities")) {
                Set<String> authorityStrs = readSet(reader);
                Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>();
                for (String s : authorityStrs) {
                    GrantedAuthority ga = new SimpleGrantedAuthority(s);
                    authorities.add(ga);
                }
                savedUserAuth.setAuthorities(authorities);
            } else {
                logger.debug("Found unexpected entry");
                reader.skipValue();
            }
            break;
        default:
            logger.debug("Found unexpected entry");
            reader.skipValue();
            continue;
        }
    }

    reader.endObject();
    return savedUserAuth;
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader/*from  ww w.  ja  v  a  2  s .c o m*/
 * @throws IOException
 */
private void readGrants(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        ApprovedSite site = new ApprovedSite();
        Long currentId = null;
        Long whitelistedSiteId = null;
        Set<Long> tokenIds = null;
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals("id")) {
                    currentId = reader.nextLong();
                } else if (name.equals("accessDate")) {
                    Date date = utcToDate(reader.nextString());
                    site.setAccessDate(date);
                } else if (name.equals("clientId")) {
                    site.setClientId(reader.nextString());
                } else if (name.equals("creationDate")) {
                    Date date = utcToDate(reader.nextString());
                    site.setCreationDate(date);
                } else if (name.equals("timeoutDate")) {
                    Date date = utcToDate(reader.nextString());
                    site.setTimeoutDate(date);
                } else if (name.equals("userId")) {
                    site.setUserId(reader.nextString());
                } else if (name.equals("allowedScopes")) {
                    Set<String> allowedScopes = readSet(reader);
                    site.setAllowedScopes(allowedScopes);
                } else if (name.equals("whitelistedSiteId")) {
                    whitelistedSiteId = reader.nextLong();
                } else if (name.equals("approvedAccessTokens")) {
                    tokenIds = readSet(reader);
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        Long newId = approvedSiteRepository.save(site).getId();
        maps.getGrantOldToNewIdMap().put(currentId, newId);
        if (whitelistedSiteId != null) {
            logger.debug("Ignoring whitelisted site marker on approved site.");
        }
        if (tokenIds != null) {
            maps.getGrantToAccessTokensRefs().put(currentId, tokenIds);
        }
        logger.debug("Read grant {}", currentId);
    }
    reader.endArray();
    logger.info("Done reading grants");
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader// ww w. ja va2s.  c  o m
 * @throws IOException
 */
private void readWhitelistedSites(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        WhitelistedSite wlSite = new WhitelistedSite();
        Long currentId = null;
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (name.equals("id")) {
                    currentId = reader.nextLong();
                } else if (name.equals("clientId")) {
                    wlSite.setClientId(reader.nextString());
                } else if (name.equals("creatorUserId")) {
                    wlSite.setCreatorUserId(reader.nextString());
                } else if (name.equals("allowedScopes")) {
                    Set<String> allowedScopes = readSet(reader);
                    wlSite.setAllowedScopes(allowedScopes);
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        Long newId = wlSiteRepository.save(wlSite).getId();
        maps.getWhitelistedSiteOldToNewIdMap().put(currentId, newId);
    }
    reader.endArray();
    logger.info("Done reading whitelisted sites");
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader//from   w  ww . ja  v a  2s. c  o m
 * @throws IOException
 */
private void readBlacklistedSites(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        BlacklistedSite blSite = new BlacklistedSite();
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (name.equals("id")) {
                    reader.skipValue();
                } else if (name.equals("uri")) {
                    blSite.setUri(reader.nextString());
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        blSiteRepository.save(blSite);
    }
    reader.endArray();
    logger.info("Done reading blacklisted sites");
}

From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_0.java

License:Apache License

/**
 * @param reader//from w w w.  java  2s  . c  om
 * @throws IOException
 */
private void readClients(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        ClientDetailsEntity client = new ClientDetailsEntity();
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals("clientId")) {
                    client.setClientId(reader.nextString());
                } else if (name.equals("resourceIds")) {
                    Set<String> resourceIds = readSet(reader);
                    client.setResourceIds(resourceIds);
                } else if (name.equals("secret")) {
                    client.setClientSecret(reader.nextString());
                } else if (name.equals("scope")) {
                    Set<String> scope = readSet(reader);
                    client.setScope(scope);
                } else if (name.equals("authorities")) {
                    Set<String> authorityStrs = readSet(reader);
                    Set<GrantedAuthority> authorities = new HashSet<>();
                    for (String s : authorityStrs) {
                        GrantedAuthority ga = new SimpleGrantedAuthority(s);
                        authorities.add(ga);
                    }
                    client.setAuthorities(authorities);
                } else if (name.equals("accessTokenValiditySeconds")) {
                    client.setAccessTokenValiditySeconds(reader.nextInt());
                } else if (name.equals("refreshTokenValiditySeconds")) {
                    client.setRefreshTokenValiditySeconds(reader.nextInt());
                } else if (name.equals("redirectUris")) {
                    Set<String> redirectUris = readSet(reader);
                    client.setRedirectUris(redirectUris);
                } else if (name.equals("name")) {
                    client.setClientName(reader.nextString());
                } else if (name.equals("uri")) {
                    client.setClientUri(reader.nextString());
                } else if (name.equals("logoUri")) {
                    client.setLogoUri(reader.nextString());
                } else if (name.equals("contacts")) {
                    Set<String> contacts = readSet(reader);
                    client.setContacts(contacts);
                } else if (name.equals("tosUri")) {
                    client.setTosUri(reader.nextString());
                } else if (name.equals("tokenEndpointAuthMethod")) {
                    AuthMethod am = AuthMethod.getByValue(reader.nextString());
                    client.setTokenEndpointAuthMethod(am);
                } else if (name.equals("grantTypes")) {
                    Set<String> grantTypes = readSet(reader);
                    client.setGrantTypes(grantTypes);
                } else if (name.equals("responseTypes")) {
                    Set<String> responseTypes = readSet(reader);
                    client.setResponseTypes(responseTypes);
                } else if (name.equals("policyUri")) {
                    client.setPolicyUri(reader.nextString());
                } else if (name.equals("applicationType")) {
                    AppType appType = AppType.getByValue(reader.nextString());
                    client.setApplicationType(appType);
                } else if (name.equals("sectorIdentifierUri")) {
                    client.setSectorIdentifierUri(reader.nextString());
                } else if (name.equals("subjectType")) {
                    SubjectType st = SubjectType.getByValue(reader.nextString());
                    client.setSubjectType(st);
                } else if (name.equals("jwks_uri")) {
                    client.setJwksUri(reader.nextString());
                } else if (name.equals("requestObjectSigningAlg")) {
                    JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString());
                    client.setRequestObjectSigningAlg(alg);
                } else if (name.equals("userInfoEncryptedResponseAlg")) {
                    JWEAlgorithm alg = JWEAlgorithm.parse(reader.nextString());
                    client.setUserInfoEncryptedResponseAlg(alg);
                } else if (name.equals("userInfoEncryptedResponseEnc")) {
                    EncryptionMethod alg = EncryptionMethod.parse(reader.nextString());
                    client.setUserInfoEncryptedResponseEnc(alg);
                } else if (name.equals("userInfoSignedResponseAlg")) {
                    JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString());
                    client.setUserInfoSignedResponseAlg(alg);
                } else if (name.equals("idTokenSignedResonseAlg")) {
                    JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString());
                    client.setIdTokenSignedResponseAlg(alg);
                } else if (name.equals("idTokenEncryptedResponseAlg")) {
                    JWEAlgorithm alg = JWEAlgorithm.parse(reader.nextString());
                    client.setIdTokenEncryptedResponseAlg(alg);
                } else if (name.equals("idTokenEncryptedResponseEnc")) {
                    EncryptionMethod alg = EncryptionMethod.parse(reader.nextString());
                    client.setIdTokenEncryptedResponseEnc(alg);
                } else if (name.equals("tokenEndpointAuthSigningAlg")) {
                    JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString());
                    client.setTokenEndpointAuthSigningAlg(alg);
                } else if (name.equals("defaultMaxAge")) {
                    client.setDefaultMaxAge(reader.nextInt());
                } else if (name.equals("requireAuthTime")) {
                    client.setRequireAuthTime(reader.nextBoolean());
                } else if (name.equals("defaultACRValues")) {
                    Set<String> defaultACRvalues = readSet(reader);
                    client.setDefaultACRvalues(defaultACRvalues);
                } else if (name.equals("initiateLoginUri")) {
                    client.setInitiateLoginUri(reader.nextString());
                } else if (name.equals("postLogoutRedirectUri")) {
                    HashSet<String> postLogoutUris = Sets.newHashSet(reader.nextString());
                    client.setPostLogoutRedirectUris(postLogoutUris);
                } else if (name.equals("requestUris")) {
                    Set<String> requestUris = readSet(reader);
                    client.setRequestUris(requestUris);
                } else if (name.equals("description")) {
                    client.setClientDescription(reader.nextString());
                } else if (name.equals("allowIntrospection")) {
                    client.setAllowIntrospection(reader.nextBoolean());
                } else if (name.equals("reuseRefreshToken")) {
                    client.setReuseRefreshToken(reader.nextBoolean());
                } else if (name.equals("dynamicallyRegistered")) {
                    client.setDynamicallyRegistered(reader.nextBoolean());
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        clientRepository.saveClient(client);
    }
    reader.endArray();
    logger.info("Done reading clients");
}