@Test public void testContains() { jsonArray.add("wibble"); jsonArray.add(true); jsonArray.add(123); JsonObject obj = new JsonObject(); JsonArray arr = new JsonArray(); jsonArray.add(obj); jsonArray.add(arr); assertFalse(jsonArray.contains("eek")); assertFalse(jsonArray.contains(false)); assertFalse(jsonArray.contains(321)); assertFalse(jsonArray.contains(new JsonObject().put("blah", "flib"))); assertFalse(jsonArray.contains(new JsonArray().add("oob"))); assertTrue(jsonArray.contains("wibble")); assertTrue(jsonArray.contains(true)); assertTrue(jsonArray.contains(123)); assertTrue(jsonArray.contains(obj)); assertTrue(jsonArray.contains(arr)); }
@Test public void testGetList() { JsonObject obj = new JsonObject().put("quux", "wibble"); jsonArray.add("foo").add(123).add(obj); List<Object> list = jsonArray.getList(); list.remove("foo"); assertFalse(jsonArray.contains("foo")); list.add("floob"); assertTrue(jsonArray.contains("floob")); assertSame(obj, list.get(1)); obj.remove("quux"); }
@Test public void testIterator() { jsonArray.add("foo"); jsonArray.add(123); JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); Iterator<Object> iter = jsonArray.iterator(); assertTrue(iter.hasNext()); Object entry = iter.next(); assertEquals("foo", entry); assertTrue(iter.hasNext()); entry = iter.next(); assertEquals(123, entry); assertTrue(iter.hasNext()); entry = iter.next(); assertEquals(obj, entry); assertFalse(iter.hasNext()); iter.remove(); assertFalse(jsonArray.contains(obj)); assertEquals(2, jsonArray.size()); }
@Test public void testContains() { jsonArray.add("wibble"); jsonArray.add(true); jsonArray.add(123); JsonObject obj = new JsonObject(); JsonArray arr = new JsonArray(); jsonArray.add(obj); jsonArray.add(arr); assertFalse(jsonArray.contains("eek")); assertFalse(jsonArray.contains(false)); assertFalse(jsonArray.contains(321)); assertFalse(jsonArray.contains(new JsonObject().put("blah", "flib"))); assertFalse(jsonArray.contains(new JsonArray().add("oob"))); assertTrue(jsonArray.contains("wibble")); assertTrue(jsonArray.contains(true)); assertTrue(jsonArray.contains(123)); assertTrue(jsonArray.contains(obj)); assertTrue(jsonArray.contains(arr)); }
@Test public void testGetList() { JsonObject obj = new JsonObject().put("quux", "wibble"); jsonArray.add("foo").add(123).add(obj); List<Object> list = jsonArray.getList(); list.remove("foo"); assertFalse(jsonArray.contains("foo")); list.add("floob"); assertTrue(jsonArray.contains("floob")); assertSame(obj, list.get(1)); obj.remove("quux"); }
@Test public void testIterator() { jsonArray.add("foo"); jsonArray.add(123); JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); Iterator<Object> iter = jsonArray.iterator(); assertTrue(iter.hasNext()); Object entry = iter.next(); assertEquals("foo", entry); assertTrue(iter.hasNext()); entry = iter.next(); assertEquals(123, entry); assertTrue(iter.hasNext()); entry = iter.next(); assertEquals(obj, entry); assertFalse(iter.hasNext()); iter.remove(); assertFalse(jsonArray.contains(obj)); assertEquals(2, jsonArray.size()); }
public Resource produces(String... mimes) { produces = new JsonArray(); for (String mime : mimes) { if (!produces.contains(mime)) { produces.add(mime); } } return this; }
public Resource consumes(String... mimes) { consumes = new JsonArray(); for (String mime : mimes) { if (!consumes.contains(mime)) { consumes.add(mime); } } return this; }
private boolean hasAuthority(final JsonObject user, final String role) { return user.getJsonArray(FIELD_AUTHORITIES, new JsonArray()).contains(role); }
/** * check wether the current user has the given role * * @param role * the role to be checked * @param resultHandler * resultHandler gets true, if role is valid, otherwise false */ protected void doHasRole(String role, Handler<AsyncResult<Boolean>> resultHandler) { try { JsonArray roles = principal.getJsonArray(mongoAuth.getRoleField()); resultHandler.handle(Future.succeededFuture(roles != null && roles.contains(role))); } catch (Throwable e) { resultHandler.handle(Future.failedFuture(e)); } }
/** * Check wether the current user has the given permission * * @param permission * the permission to be checked * @param resultHandler * resulthandler gets true, if permission is valid, otherwise false * */ protected void doHasPermission(String permission, Handler<AsyncResult<Boolean>> resultHandler) { try { JsonArray userPermissions = principal.getJsonArray(mongoAuth.getPermissionField()); resultHandler.handle(Future.succeededFuture(userPermissions != null && userPermissions.contains(permission))); } catch (Throwable e) { resultHandler.handle(Future.failedFuture(e)); } }
private void validateRecursively(JsonObject data, String[] newSegments, String base, Buffer jsonBuffer, String path, String type, Logger log, Handler<ValidationResult> callback) { String newBase = base; String baseWithoutTrailingSlash = base.replaceFirst("/$", ""); String arrayName = baseWithoutTrailingSlash.substring(baseWithoutTrailingSlash.lastIndexOf('/')+1); JsonArray array = data.getJsonArray(arrayName); if(array != null && array.size() > 0) { if(array.contains(newSegments[0]+"/") || array.contains(newSegments[0])) { newBase = newBase + newSegments[0]+ ( newSegments.length > 1 ? "/" : ""); doValidate(jsonBuffer, path, newBase, type, Arrays.copyOfRange(newSegments, 1, newSegments.length), log, callback); } else if(array.contains("_/") || array.contains("_")) { newBase = newBase + newSegments[0]+"/"; doValidate(jsonBuffer, path, newBase, type, Arrays.copyOfRange(newSegments, 1, newSegments.length), log, callback); } else { String message = "No schema for "+path+" ("+type+") [2]"; log.warn(message); callback.handle(new ValidationResult(ValidationStatus.VALIDATED_NEGATIV, message)); } } else { String message = "No schema for "+path+" ("+type+") [3]"; log.warn(message); callback.handle(new ValidationResult(ValidationStatus.VALIDATED_NEGATIV, message)); } }
/** * Factory method to create a RBAC handler for tokens adhering to the MP-JWT 1.1 spec. * @return a RBAC validator */ static OAuth2RBAC create() { return (user, authority, handler) -> { JsonObject accessToken = user.accessToken(); if (accessToken == null) { handler.handle(Future.failedFuture("AccessToken is not a valid JWT")); return; } // the spec MP-JWT 1.1 defines a custom grant called "groups" final JsonArray groups = accessToken.getJsonArray("groups"); // This MP-JWT custom claim is the list of group names that have been assigned to the principal of the MP-JWT. // This typically will required a mapping at the application container level to application deployment roles, // but a a one-to-one between group names and application role names is required to be performed in addition // to any other mapping. if (groups == null || groups.size() == 0) { handler.handle(Future.succeededFuture(false)); return; } // verify if the groups claim contains the required authority handler.handle(Future.succeededFuture(groups.contains(authority))); }; } }
/** * Determine if this token has an associated specific realm-level role. * <p> * Even if `clientId` is not set, this method may be used to explicitly test * roles for the realm. * * @param roleName The name of the role within that application to test. * @return `true` if this token has the specified role, otherwise `false`. */ private boolean hasRealmRole(JsonObject accessToken, String roleName) { if (accessToken == null) { return false; } return accessToken .getJsonObject("realm_access", EMPTY_JSON) .getJsonArray("roles", EMPTY_ARRAY) .contains(roleName); } }
/** * Determine if this token has an associated specific application role. * <p> * Even if `clientId` is not set, this method may be used to explicitly test * roles for any given application. * * @param appName The identifier of the application to test. * @param roleName The name of the role within that application to test. * @return `true` if this token has the specified role, otherwise `false`. */ private boolean hasApplicationRole(JsonObject accessToken, String appName, String roleName) { if (accessToken == null) { return false; } JsonObject appRoles = accessToken .getJsonObject("resource_access", EMPTY_JSON) .getJsonObject(appName); if (appRoles == null) { return false; } return appRoles .getJsonArray("roles", EMPTY_ARRAY) .contains(roleName); }
public static void check(JsonObject json) { assertThat(json).isNotNull(); assertThat(json.getString("key")).isEqualTo("value"); assertThat(json.getBoolean("true")).isTrue(); assertThat(json.getBoolean("false")).isFalse(); assertThat(json.getString("missing")).isNull(); assertThat(json.getInteger("int")).isEqualTo(5); assertThat(json.getDouble("float")).isEqualTo(25.3); assertThat(json.getJsonArray("array").size()).isEqualTo(3); assertThat(json.getJsonArray("array").contains(1)).isTrue(); assertThat(json.getJsonArray("array").contains(2)).isTrue(); assertThat(json.getJsonArray("array").contains(3)).isTrue(); assertThat(json.getJsonObject("sub").getString("foo")).isEqualTo("bar"); }
public static void check(JsonObject json) { assertThat(json).isNotNull(); assertThat(json.getString("key")).isEqualTo("value"); assertThat(json.getBoolean("true")).isTrue(); assertThat(json.getBoolean("false")).isFalse(); assertThat(json.getString("missing")).isNull(); assertThat(json.getInteger("int")).isEqualTo(5); assertThat(json.getDouble("float")).isEqualTo(25.3); assertThat(json.getJsonArray("array").size()).isEqualTo(3); assertThat(json.getJsonArray("array").contains(1)).isTrue(); assertThat(json.getJsonArray("array").contains(2)).isTrue(); assertThat(json.getJsonArray("array").contains(3)).isTrue(); assertThat(json.getJsonObject("sub").getString("foo")).isEqualTo("bar"); }
@Test public void testSimpleJsonConfiguration(TestContext tc) { Async async = tc.async(); retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore( new ConfigStoreOptions() .setType("file") .setFormat("hocon") .setConfig(new JsonObject().put("path", "src/test/resources/regular.json")))); retriever.getConfig(ar -> { assertThat(ar.succeeded()).isTrue(); JsonObject json = ar.result(); assertThat(json.getString("key")).isEqualTo("value"); assertThat(json.getBoolean("true")).isTrue(); assertThat(json.getBoolean("false")).isFalse(); assertThat(json.getString("missing")).isNull(); assertThat(json.getInteger("int")).isEqualTo(5); assertThat(json.getDouble("float")).isEqualTo(25.3); assertThat(json.getJsonArray("array").size()).isEqualTo(3); assertThat(json.getJsonArray("array").contains(1)).isTrue(); assertThat(json.getJsonArray("array").contains(2)).isTrue(); assertThat(json.getJsonArray("array").contains(3)).isTrue(); assertThat(json.getJsonObject("sub").getString("foo")).isEqualTo("bar"); async.complete(); }); }
@Test public void testSimpleJsonConfiguration(TestContext tc) { Async async = tc.async(); retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore( new ConfigStoreOptions() .setType("file") .setFormat("hocon") .setConfig(new JsonObject().put("path", "src/test/resources/regular.json")))); retriever.getConfig(ar -> { assertThat(ar.succeeded()).isTrue(); JsonObject json = ar.result(); assertThat(json.getString("key")).isEqualTo("value"); assertThat(json.getBoolean("true")).isTrue(); assertThat(json.getBoolean("false")).isFalse(); assertThat(json.getString("missing")).isNull(); assertThat(json.getInteger("int")).isEqualTo(5); assertThat(json.getDouble("float")).isEqualTo(25.3); assertThat(json.getJsonArray("array").size()).isEqualTo(3); assertThat(json.getJsonArray("array").contains(1)).isTrue(); assertThat(json.getJsonArray("array").contains(2)).isTrue(); assertThat(json.getJsonArray("array").contains(3)).isTrue(); assertThat(json.getJsonObject("sub").getString("foo")).isEqualTo("bar"); async.complete(); }); }