List of usage examples for com.google.gson.stream JsonReader beginArray
public void beginArray() throws IOException
From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_3.java
License:Apache License
/** * @param reader/*from w w w . j ava2s. c o m*/ * @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(CLIENT_ID)) { client.setClientId(reader.nextString()); } else if (name.equals(RESOURCE_IDS)) { 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<GrantedAuthority>(); for (String s : authorityStrs) { GrantedAuthority ga = new SimpleGrantedAuthority(s); authorities.add(ga); } client.setAuthorities(authorities); } else if (name.equals(ACCESS_TOKEN_VALIDITY_SECONDS)) { client.setAccessTokenValiditySeconds(reader.nextInt()); } else if (name.equals(REFRESH_TOKEN_VALIDITY_SECONDS)) { client.setRefreshTokenValiditySeconds(reader.nextInt()); } else if (name.equals(ID_TOKEN_VALIDITY_SECONDS)) { client.setIdTokenValiditySeconds(reader.nextInt()); } else if (name.equals(DEVICE_CODE_VALIDITY_SECONDS)) { client.setDeviceCodeValiditySeconds(reader.nextInt()); } else if (name.equals(REDIRECT_URIS)) { Set<String> redirectUris = readSet(reader); client.setRedirectUris(redirectUris); } else if (name.equals(CLAIMS_REDIRECT_URIS)) { Set<String> claimsRedirectUris = readSet(reader); client.setClaimsRedirectUris(claimsRedirectUris); } else if (name.equals(NAME)) { client.setClientName(reader.nextString()); } else if (name.equals(URI)) { client.setClientUri(reader.nextString()); } else if (name.equals(LOGO_URI)) { client.setLogoUri(reader.nextString()); } else if (name.equals(CONTACTS)) { Set<String> contacts = readSet(reader); client.setContacts(contacts); } else if (name.equals(TOS_URI)) { client.setTosUri(reader.nextString()); } else if (name.equals(TOKEN_ENDPOINT_AUTH_METHOD)) { AuthMethod am = AuthMethod.getByValue(reader.nextString()); client.setTokenEndpointAuthMethod(am); } else if (name.equals(GRANT_TYPES)) { Set<String> grantTypes = readSet(reader); client.setGrantTypes(grantTypes); } else if (name.equals(RESPONSE_TYPES)) { Set<String> responseTypes = readSet(reader); client.setResponseTypes(responseTypes); } else if (name.equals(POLICY_URI)) { client.setPolicyUri(reader.nextString()); } else if (name.equals(APPLICATION_TYPE)) { AppType appType = AppType.getByValue(reader.nextString()); client.setApplicationType(appType); } else if (name.equals(SECTOR_IDENTIFIER_URI)) { client.setSectorIdentifierUri(reader.nextString()); } else if (name.equals(SUBJECT_TYPE)) { SubjectType st = SubjectType.getByValue(reader.nextString()); client.setSubjectType(st); } else if (name.equals(JWKS_URI)) { client.setJwksUri(reader.nextString()); } else if (name.equals(JWKS)) { try { client.setJwks(JWKSet.parse(reader.nextString())); } catch (ParseException e) { logger.error("Couldn't parse JWK Set", e); } } else if (name.equals(REQUEST_OBJECT_SIGNING_ALG)) { JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString()); client.setRequestObjectSigningAlg(alg); } else if (name.equals(USER_INFO_ENCRYPTED_RESPONSE_ALG)) { JWEAlgorithm alg = JWEAlgorithm.parse(reader.nextString()); client.setUserInfoEncryptedResponseAlg(alg); } else if (name.equals(USER_INFO_ENCRYPTED_RESPONSE_ENC)) { EncryptionMethod alg = EncryptionMethod.parse(reader.nextString()); client.setUserInfoEncryptedResponseEnc(alg); } else if (name.equals(USER_INFO_SIGNED_RESPONSE_ALG)) { JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString()); client.setUserInfoSignedResponseAlg(alg); } else if (name.equals(ID_TOKEN_SIGNED_RESPONSE_ALG)) { JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString()); client.setIdTokenSignedResponseAlg(alg); } else if (name.equals(ID_TOKEN_ENCRYPTED_RESPONSE_ALG)) { JWEAlgorithm alg = JWEAlgorithm.parse(reader.nextString()); client.setIdTokenEncryptedResponseAlg(alg); } else if (name.equals(ID_TOKEN_ENCRYPTED_RESPONSE_ENC)) { EncryptionMethod alg = EncryptionMethod.parse(reader.nextString()); client.setIdTokenEncryptedResponseEnc(alg); } else if (name.equals(TOKEN_ENDPOINT_AUTH_SIGNING_ALG)) { JWSAlgorithm alg = JWSAlgorithm.parse(reader.nextString()); client.setTokenEndpointAuthSigningAlg(alg); } else if (name.equals(DEFAULT_MAX_AGE)) { client.setDefaultMaxAge(reader.nextInt()); } else if (name.equals(REQUIRE_AUTH_TIME)) { client.setRequireAuthTime(reader.nextBoolean()); } else if (name.equals(DEFAULT_ACR_VALUES)) { Set<String> defaultACRvalues = readSet(reader); client.setDefaultACRvalues(defaultACRvalues); } else if (name.equals("initiateLoginUri")) { client.setInitiateLoginUri(reader.nextString()); } else if (name.equals(POST_LOGOUT_REDIRECT_URI)) { Set<String> postLogoutUris = readSet(reader); client.setPostLogoutRedirectUris(postLogoutUris); } else if (name.equals(REQUEST_URIS)) { Set<String> requestUris = readSet(reader); client.setRequestUris(requestUris); } else if (name.equals(DESCRIPTION)) { client.setClientDescription(reader.nextString()); } else if (name.equals(ALLOW_INTROSPECTION)) { client.setAllowIntrospection(reader.nextBoolean()); } else if (name.equals(REUSE_REFRESH_TOKEN)) { client.setReuseRefreshToken(reader.nextBoolean()); } else if (name.equals(CLEAR_ACCESS_TOKENS_ON_REFRESH)) { client.setClearAccessTokensOnRefresh(reader.nextBoolean()); } else if (name.equals(DYNAMICALLY_REGISTERED)) { client.setDynamicallyRegistered(reader.nextBoolean()); } else if (name.equals(CODE_CHALLENGE_METHOD)) { client.setCodeChallengeMethod(PKCEAlgorithm.parse(reader.nextString())); } else if (name.equals(SOFTWARE_ID)) { client.setSoftwareId(reader.nextString()); } else if (name.equals(SOFTWARE_VERSION)) { client.setSoftwareVersion(reader.nextString()); } else if (name.equals(SOFTWARE_STATEMENT)) { try { client.setSoftwareStatement(JWTParser.parse(reader.nextString())); } catch (ParseException e) { logger.error("Couldn't parse software statement", e); } } else if (name.equals(CREATION_DATE)) { Date date = utcToDate(reader.nextString()); client.setCreatedAt(date); } 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"); }
From source file:org.mitre.openid.connect.service.impl.MITREidDataService_1_3.java
License:Apache License
/** * Read the list of system scopes from the reader and insert them into the * scope repository.//w w w . j a va2s. c o m * * @param reader * @throws IOException */ private void readSystemScopes(JsonReader reader) throws IOException { reader.beginArray(); while (reader.hasNext()) { SystemScope scope = new SystemScope(); 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(VALUE)) { scope.setValue(reader.nextString()); } else if (name.equals(DESCRIPTION)) { scope.setDescription(reader.nextString()); } else if (name.equals(RESTRICTED)) { scope.setRestricted(reader.nextBoolean()); } else if (name.equals(DEFAULT_SCOPE)) { scope.setDefaultScope(reader.nextBoolean()); } else if (name.equals(ICON)) { scope.setIcon(reader.nextString()); } else { logger.debug("found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); sysScopeRepository.save(scope); } reader.endArray(); logger.info("Done reading system scopes"); }
From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java
License:Apache License
/** * @param reader// w w w . java2 s. c om */ private void readTokenPermissions(JsonReader reader) throws IOException { reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); Long tokenId = null; Set<Long> permissions = new HashSet<>(); while (reader.hasNext()) { switch (reader.peek()) { case END_OBJECT: continue; case NAME: String name = reader.nextName(); if (name.equals(TOKEN_ID)) { tokenId = reader.nextLong(); } else if (name.equals(PERMISSIONS)) { reader.beginArray(); while (reader.hasNext()) { Permission p = new Permission(); Long rsid = null; Set<String> scope = new HashSet<>(); reader.beginObject(); while (reader.hasNext()) { switch (reader.peek()) { case END_OBJECT: continue; case NAME: String pname = reader.nextName(); if (reader.peek() == JsonToken.NULL) { reader.skipValue(); } else if (pname.equals(RESOURCE_SET)) { rsid = reader.nextLong(); } else if (pname.equals(SCOPES)) { scope = readSet(reader); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); p.setScopes(scope); Permission saved = permissionRepository.saveRawPermission(p); permissionToResourceRefs.put(saved.getId(), rsid); permissions.add(saved.getId()); } reader.endArray(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); tokenToPermissionRefs.put(tokenId, permissions); } reader.endArray(); }
From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java
License:Apache License
/** * @param reader// w w w . j a v a 2s . co m */ private void readPermissionTickets(JsonReader reader) throws IOException { JsonParser parser = new JsonParser(); reader.beginArray(); while (reader.hasNext()) { PermissionTicket ticket = new PermissionTicket(); 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(CLAIMS_SUPPLIED)) { Set<Claim> claimsSupplied = new HashSet<>(); reader.beginArray(); while (reader.hasNext()) { Claim c = new Claim(); reader.beginObject(); while (reader.hasNext()) { switch (reader.peek()) { case END_OBJECT: continue; case NAME: String cname = reader.nextName(); if (reader.peek() == JsonToken.NULL) { reader.skipValue(); } else if (cname.equals(ISSUER)) { c.setIssuer(readSet(reader)); } else if (cname.equals(CLAIM_TOKEN_FORMAT)) { c.setClaimTokenFormat(readSet(reader)); } else if (cname.equals(CLAIM_TYPE)) { c.setClaimType(reader.nextString()); } else if (cname.equals(FRIENDLY_NAME)) { c.setFriendlyName(reader.nextString()); } else if (cname.equals(NAME)) { c.setName(reader.nextString()); } else if (cname.equals(VALUE)) { JsonElement e = parser.parse(reader.nextString()); c.setValue(e); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); claimsSupplied.add(c); } reader.endArray(); ticket.setClaimsSupplied(claimsSupplied); } else if (name.equals(EXPIRATION)) { ticket.setExpiration(utcToDate(reader.nextString())); } else if (name.equals(PERMISSION)) { Permission p = new Permission(); Long rsid = null; reader.beginObject(); while (reader.hasNext()) { switch (reader.peek()) { case END_OBJECT: continue; case NAME: String pname = reader.nextName(); if (reader.peek() == JsonToken.NULL) { reader.skipValue(); } else if (pname.equals(RESOURCE_SET)) { rsid = reader.nextLong(); } else if (pname.equals(SCOPES)) { p.setScopes(readSet(reader)); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); Permission saved = permissionRepository.saveRawPermission(p); permissionToResourceRefs.put(saved.getId(), rsid); ticket.setPermission(saved); } else if (name.equals(TICKET)) { ticket.setTicket(reader.nextString()); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); permissionRepository.save(ticket); } reader.endArray(); }
From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java
License:Apache License
/** * @param reader/*from ww w. j av a 2s. c o m*/ */ private void readResourceSets(JsonReader reader) throws IOException { JsonParser parser = new JsonParser(); reader.beginArray(); while (reader.hasNext()) { Long oldId = null; ResourceSet rs = new ResourceSet(); 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)) { oldId = reader.nextLong(); } else if (name.equals(CLIENT_ID)) { rs.setClientId(reader.nextString()); } else if (name.equals(ICON_URI)) { rs.setIconUri(reader.nextString()); } else if (name.equals(NAME)) { rs.setName(reader.nextString()); } else if (name.equals(TYPE)) { rs.setType(reader.nextString()); } else if (name.equals(URI)) { rs.setUri(reader.nextString()); } else if (name.equals(OWNER)) { rs.setOwner(reader.nextString()); } else if (name.equals(POLICIES)) { Set<Policy> policies = new HashSet<>(); reader.beginArray(); while (reader.hasNext()) { Policy p = new Policy(); reader.beginObject(); while (reader.hasNext()) { switch (reader.peek()) { case END_OBJECT: continue; case NAME: String pname = reader.nextName(); if (reader.peek() == JsonToken.NULL) { reader.skipValue(); } else if (pname.equals(NAME)) { p.setName(reader.nextString()); } else if (pname.equals(SCOPES)) { p.setScopes(readSet(reader)); } else if (pname.equals(CLAIMS_REQUIRED)) { Set<Claim> claimsRequired = new HashSet<>(); reader.beginArray(); while (reader.hasNext()) { Claim c = new Claim(); reader.beginObject(); while (reader.hasNext()) { switch (reader.peek()) { case END_OBJECT: continue; case NAME: String cname = reader.nextName(); if (reader.peek() == JsonToken.NULL) { reader.skipValue(); } else if (cname.equals(ISSUER)) { c.setIssuer(readSet(reader)); } else if (cname.equals(CLAIM_TOKEN_FORMAT)) { c.setClaimTokenFormat(readSet(reader)); } else if (cname.equals(CLAIM_TYPE)) { c.setClaimType(reader.nextString()); } else if (cname.equals(FRIENDLY_NAME)) { c.setFriendlyName(reader.nextString()); } else if (cname.equals(NAME)) { c.setName(reader.nextString()); } else if (cname.equals(VALUE)) { JsonElement e = parser.parse(reader.nextString()); c.setValue(e); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); claimsRequired.add(c); } reader.endArray(); p.setClaimsRequired(claimsRequired); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); policies.add(p); } reader.endArray(); rs.setPolicies(policies); } else if (name.equals(SCOPES)) { rs.setScopes(readSet(reader)); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); Long newId = resourceSetRepository.save(rs).getId(); resourceSetOldToNewIdMap.put(oldId, newId); } reader.endArray(); logger.info("Done reading resource sets"); }
From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java
License:Apache License
/** * @param reader/*w w w . j av a 2s . c o m*/ */ private void readSavedRegisteredClients(JsonReader reader) throws IOException { reader.beginArray(); while (reader.hasNext()) { String issuer = null; String clientString = 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(ISSUER)) { issuer = reader.nextString(); } else if (name.equals(REGISTERED_CLIENT)) { clientString = reader.nextString(); } else { logger.debug("Found unexpected entry"); reader.skipValue(); } break; default: logger.debug("Found unexpected entry"); reader.skipValue(); continue; } } reader.endObject(); RegisteredClient client = ClientDetailsEntityJsonProcessor.parseRegistered(clientString); registeredClientService.save(issuer, client); logger.debug("Saved registered client"); } reader.endArray(); logger.info("Done reading saved registered clients"); }
From source file:org.mitre.util.JsonUtils.java
License:Apache License
public static Set readSet(JsonReader reader) throws IOException { Set arraySet = null;// w w w . j ava 2 s. c om reader.beginArray(); switch (reader.peek()) { case STRING: arraySet = new HashSet<>(); while (reader.hasNext()) { arraySet.add(reader.nextString()); } break; case NUMBER: arraySet = new HashSet<>(); while (reader.hasNext()) { arraySet.add(reader.nextLong()); } break; default: arraySet = new HashSet(); break; } reader.endArray(); return arraySet; }
From source file:org.mule.modules.servicesource.ServiceSourceConnector.java
License:Open Source License
private <T> List<T> readStream(InputStream stream, Class<T> type) { JsonReader reader = null; try {//from w w w .j a v a 2 s . c om reader = new JsonReader(new InputStreamReader(stream)); List<T> result = new ArrayList<T>(); try { reader.beginArray(); } catch (MalformedJsonException e) { // this means that the input came empty return result; } while (reader.hasNext()) { result.add(GsonFactory.getGson().<T>fromJson(reader, type)); } reader.endArray(); return result; } catch (IOException e) { throw new ServiceSourceException("Error consuming stream", e); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { logger.error("Error closing stream reader", e); } } IOUtils.closeQuietly(stream); } }
From source file:org.mythdroid.services.GuideService.java
License:Open Source License
/** * Get ProgramGuide data/* w w w. ja va 2 s .c o m*/ * @param start Date for start of data * @param end Date for end of data * @return ArrayList of Channels */ public ArrayList<Channel> GetProgramGuide(Date start, Date end) throws IOException { final Params params = new Params(); params.put("StartTime", Globals.utcFormat(start)); //$NON-NLS-1$ params.put("EndTime", Globals.utcFormat(end)); //$NON-NLS-1$ params.put("StartChanId", 0); //$NON-NLS-1$ params.put("NumChannels", -1); //$NON-NLS-1$ params.put("Details", "true"); //$NON-NLS-1$ //$NON-NLS-2$ InputStream is = jc.GetStream("GetProgramGuide", params); //$NON-NLS-1$ JsonReader jreader = new JsonReader(new BufferedReader(new InputStreamReader(is, "UTF-8")) //$NON-NLS-1$ ); ArrayList<Channel> channels = new ArrayList<Channel>(); jreader.beginObject(); skipTo(jreader, JsonToken.BEGIN_OBJECT); jreader.beginObject(); skipTo(jreader, JsonToken.NAME); while (jreader.hasNext()) { String name = jreader.nextName(); if (name.equals("NumOfChannels")) { //$NON-NLS-1$ channels.ensureCapacity(jreader.nextInt()); break; } jreader.skipValue(); } skipTo(jreader, JsonToken.BEGIN_ARRAY); jreader.beginArray(); while (jreader.hasNext()) { jreader.beginObject(); channels.add((Channel) gson.fromJson(jreader, Channel.class)); jreader.endObject(); } jreader.endArray(); jreader.endObject(); jreader.endObject(); jreader.close(); jc.endStream(); return channels; }
From source file:org.mythdroid.services.VideoService.java
License:Open Source License
/** * Get a list of videos / directories in a given subdirectory * @param subdir the desired subdirectory or "ROOT" for the top-level * @return an ArrayList of Videos//w ww . j a v a 2 s . c o m */ public ArrayList<Video> getVideos(String subdir) throws IOException { ArrayList<Video> videos = new ArrayList<Video>(128); InputStream is = jc.GetStream("GetVideoList", null); //$NON-NLS-1$ if (is == null) return null; JsonReader jreader = new JsonReader(new BufferedReader(new InputStreamReader(is, "UTF-8")) //$NON-NLS-1$ ); Video vid; final ArrayList<String> subdirs = new ArrayList<String>(16); jreader.beginObject(); skipTo(jreader, JsonToken.BEGIN_OBJECT); jreader.beginObject(); skipTo(jreader, JsonToken.BEGIN_ARRAY); jreader.beginArray(); while (jreader.hasNext()) { jreader.beginObject(); vid = gson.fromJson(jreader, Video.class); jreader.endObject(); if (!subdir.equals("ROOT") && !vid.filename.startsWith(subdir)) //$NON-NLS-1$ continue; String name = vid.filename; if (!subdir.equals("ROOT")) //$NON-NLS-1$ name = vid.filename.substring(subdir.length() + 1); int slash; if ((slash = name.indexOf('/')) > 0) { String dir = name.substring(0, slash); if (!subdirs.contains(dir)) subdirs.add(dir); } else videos.add(vid); } jreader.endArray(); jreader.endObject(); jreader.endObject(); jreader.close(); jc.endStream(); for (String name : subdirs) { try { videos.add(new Video("-1 DIRECTORY " + name)); //$NON-NLS-1$ } catch (IllegalArgumentException e) { ErrUtil.logWarn(e); } } videos.trimToSize(); return videos; }