List of usage examples for io.vertx.core.json JsonObject put
public JsonObject put(String key, Object value)
From source file:io.fabric8.devops.apps.elasticsearch.helper.service.ElasticSearchOptionsConverter.java
License:Apache License
public static void toJson(ElasticSearchOptions obj, JsonObject json) { if (obj.getConfigMap() != null) { json.put("configMap", obj.getConfigMap()); }/*from www . jav a2s .c om*/ json.put("configMapScanPeriod", obj.getConfigMapScanPeriod()); if (obj.getHost() != null) { json.put("host", obj.getHost()); } if (obj.getIndexes() != null) { JsonArray array = new JsonArray(); obj.getIndexes().forEach(item -> array.add(item)); json.put("indexes", array); } if (obj.getKubernetesNamespace() != null) { json.put("kubernetesNamespace", obj.getKubernetesNamespace()); } json.put("port", obj.getPort()); json.put("ssl", obj.isSsl()); }
From source file:io.flowly.auth.ExtJwtAuthProvider.java
License:Open Source License
@Override public String generateToken(JsonObject claims, final JWTOptions options) { final JsonObject jsonOptions = options.toJSON(); // we do some "enhancement" of the claims to support roles and permissions if (jsonOptions.containsKey("permissions") && !claims.containsKey(permissionsClaimKey)) { claims.put(permissionsClaimKey, jsonOptions.getJsonArray("permissions")); }//from w w w . j a va 2 s. c om return jwt.sign(claims, options.toJSON()); }
From source file:io.flowly.auth.manager.BaseManager.java
License:Open Source License
/** * Retrieves direct and indirect memberships that a user or group holds. * * @param vertex vertex in the auth graph representing a user or group. * @param jsonObject JSON object representing the user or group to which retrieved memberships are added. * @param includeEffectiveMemberships indicates if all the user or group memberships are to be retrieved. * @param includeDirectMemberships indicates if the user's direct memberships are to be retrieved. * @param includePermissions indicates if the permissions granted to each group are to be retrieved. */// www . j av a2 s . c o m protected void getMemberships(Vertex vertex, JsonObject jsonObject, boolean includeEffectiveMemberships, boolean includeDirectMemberships, boolean includePermissions) { boolean isUserVertex = jsonObject.containsKey(User.USER_ID); String uniqueId = isUserVertex ? jsonObject.getString(User.USER_ID) : jsonObject.getString(Group.GROUP_ID); if (includeEffectiveMemberships || includePermissions) { JsonArray effectiveMemberships = new JsonArray(); jsonObject.put(User.EFFECTIVE_MEMBERSHIPS, effectiveMemberships); List<Vertex> groupVertices = graph.traversal().V(vertex).repeat(__.outE(Schema.E_MEMBER_OF).inV()) .emit().toList(); getDistinctMemberships(groupVertices, effectiveMemberships, uniqueId, isUserVertex, includePermissions); } if (includeDirectMemberships) { JsonArray directMemberships = new JsonArray(); jsonObject.put(User.DIRECT_MEMBERSHIPS, directMemberships); getDistinctMemberships(graph.traversal().V(vertex).outE(Schema.E_MEMBER_OF).inV().toList(), directMemberships, null, false, false); } }
From source file:io.flowly.auth.manager.BaseManager.java
License:Open Source License
/** * Get the permissions directly granted on the given user or group vertex. * * @param vertex represents a user or group vertex in the auth graph. * @param jsonObject JSON object representing the user or group. *//*from w w w .j a va 2 s. c om*/ protected void getDirectPermissions(Vertex vertex, JsonObject jsonObject) { jsonObject.put(Permission.DIRECT_PERMISSIONS, new JsonArray(graph.traversal().V(vertex) .outE(Schema.E_HAS_PERMISSION).map(m -> makePermissionObject(m.get())).toList())); }
From source file:io.flowly.auth.manager.GroupManager.java
License:Open Source License
private void getMembers(Vertex groupVertex, JsonObject group, boolean includeDirectMembers, boolean includeEffectiveUsers) { if (includeDirectMembers) { JsonArray directMembers = new JsonArray(); group.put(Group.DIRECT_MEMBERS, directMembers); graph.traversal().V(groupVertex).outE(Schema.E_MEMBER).inV().sideEffect(m -> { Vertex vertex = m.get();//from w w w .j a va 2 s . co m if (vertex.label().equals(Schema.V_USER)) { directMembers.add(makeUserObject(vertex)); } else { directMembers.add(makeGroupObject(vertex, null, false)); } }).toList(); } // Recursively retrieve all unique users. if (includeEffectiveUsers) { JsonArray allUsers = new JsonArray(); group.put(Group.ALL_USERS, allUsers); getUsers(groupVertex, allUsers, new HashSet<>()); } }
From source file:io.flowly.auth.manager.UserManager.java
License:Open Source License
/** * Verify the authenticity of the provided user credentials. * * @param user JSON object representing the user credentials. * Ex: {/*from w w w .j ava 2s. c o m*/ * "userId": "aragorn", * "password": "!234aCbbJk_#3" * } * @return JSON object representing the authenticated user attributes and effective permissions. * Ex: { * "userId": "aragorn", * "firstName": "First", * "lastName": "Last", * "middleName": "M", * "fullName": "First M Last", * "isInternal": true, * "authenticated": true, * "effectivePermissions": [ * { * "resourceVertexId": 54113, * "resourceId": "Studio" * "rwx": 7 * } * ] * } */ public JsonObject authenticate(JsonObject user) { user.put(User.AUTHENTICATED, false); String password = (String) user.remove(User.PASSWORD); String userId = user.getString(User.USER_ID); try { if (StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(password)) { Traversal<Vertex, Vertex> traversal = graph.traversal().V().has(Schema.V_USER, Schema.V_P_USER_ID, userId); if (traversal.hasNext()) { Vertex userVertex = traversal.next(); String hash = getPropertyValue(userVertex, Schema.V_P_PASSWORD).toString(); boolean authenticated = PasswordHash.validatePassword(password, hash); if (authenticated) { user = get(userVertex, true, false, false, true); user.put(User.AUTHENTICATED, true); } } commit(); } } catch (Exception ex) { rollback(); logger.error("Unable to authenticate user.", ex); } return user; }
From source file:io.flowly.auth.manager.UserManager.java
License:Open Source License
/** * Calculate the effective permissions granted to the given user. * The effective permission on each resource is the cumulative grants * given to the user either directly or indirectly. * * @param user JSON object representing the user in the auth graph. *//* ww w .ja v a 2 s.c om*/ private void getEffectivePermissions(JsonObject user) { JsonArray effectivePermissions = new JsonArray(); // Holds the resource Ids and their respective permissions that have the cumulative // grant value (simple integer - rwx). Map<String, JsonObject> definedPermissions = new HashMap<>(); // Start with direct permissions. getEffectivePermissions(user.getJsonArray(Permission.DIRECT_PERMISSIONS), definedPermissions); // Check permissions defined on groups. JsonArray effectiveMemberships = user.getJsonArray(User.EFFECTIVE_MEMBERSHIPS); if (effectiveMemberships != null) { for (Object mbr : effectiveMemberships) { JsonObject membership = (JsonObject) mbr; getEffectivePermissions(membership.getJsonArray(Permission.DIRECT_PERMISSIONS), definedPermissions); } } for (JsonObject permission : definedPermissions.values()) { effectivePermissions.add(permission); } user.put(Permission.EFFECTIVE_PERMISSIONS, effectivePermissions); }
From source file:io.flowly.auth.router.UserRouter.java
License:Open Source License
private JsonObject getAuthenticatedUser(JsonObject user) { if (!user.getBoolean(User.AUTHENTICATED)) { return user; }// ww w . ja v a2 s . com JsonObject claims = new JsonObject().put("sub", user.getString(User.USER_ID)).put("permissions", user.remove(Permission.EFFECTIVE_PERMISSIONS)); JsonArray directMemberships = (JsonArray) user.remove(User.DIRECT_MEMBERSHIPS); if (directMemberships != null) { claims.put(ObjectKeys.GURU, directMemberships.stream().anyMatch(m -> { JsonObject group = (JsonObject) m; String groupId = group.getString(Group.GROUP_ID); return groupId != null && groupId.equals(ObjectKeys.ADMIN_GROUP_ID); })); } return user.put("token", authProvider.generateToken(claims, new JWTOptions())); }
From source file:io.flowly.core.router.BaseRouter.java
License:Open Source License
protected JsonObject getSearchArgs(RoutingContext routingContext) { JsonObject args = new JsonObject(); args.put(ObjectKeys.PAGE_NUMBER, Integer.parseInt(routingContext.request().getParam(ObjectKeys.PAGE_NUMBER))); args.put(ObjectKeys.PAGE_SIZE, Integer.parseInt(routingContext.request().getParam(ObjectKeys.PAGE_SIZE))); return args;//from w w w. j a va2 s . com }
From source file:io.flowly.engine.App.java
License:Open Source License
public JsonObject toJson() { JsonObject jsonObject = new JsonObject(); jsonObject.put(JsonKeys.APP_ID, getId()); jsonObject.put(JsonKeys.APPS_DIRECTORY, getAppRootFolder()); jsonObject.put(JsonKeys.APP_LOCKED, isLocked()); return jsonObject; }