List of usage examples for io.vertx.core.json JsonObject getBoolean
public Boolean getBoolean(String key, Boolean def)
From source file:org.eclipse.hono.util.TenantObject.java
License:Open Source License
/** * Checks if a given protocol adapter is enabled for this tenant. * /* w w w .j a v a2s . co m*/ * @param typeName The type name of the adapter. * @return {@code true} if this tenant and the given adapter are enabled. */ @JsonIgnore public boolean isAdapterEnabled(final String typeName) { if (!isEnabled()) { return false; } else if (adapterConfigurations == null) { // all adapters are enabled return true; } else { final JsonObject config = getAdapterConfiguration(typeName); if (config == null) { // if not explicitly configured, the adapter is disabled by default return false; } else { return config.getBoolean(TenantConstants.FIELD_ENABLED, Boolean.FALSE); } } }
From source file:org.entcore.archive.controllers.ArchiveController.java
License:Open Source License
@Override public void init(Vertx vertx, final JsonObject config, RouteMatcher rm, Map<String, fr.wseduc.webutils.security.SecuredAction> securedActions) { super.init(vertx, config, rm, securedActions); String exportPath = config.getString("export-path", System.getProperty("java.io.tmpdir")); Set<String> expectedExports = new HashSet<>(); final JsonArray e = config.getJsonArray("expected-exports"); for (Object o : e) { if (o instanceof String) { expectedExports.add((String) o); }// w w w . ja v a 2 s . c o m } LocalMap<Object, Object> server = vertx.sharedData().getLocalMap("server"); Boolean cluster = (Boolean) server.get("cluster"); final Map<String, Long> userExport = MapFactory.getSyncClusterMap(Archive.ARCHIVES, vertx); EmailFactory emailFactory = new EmailFactory(vertx, config); EmailSender notification = config.getBoolean("send.export.email", false) ? emailFactory.getSender() : null; storage = new StorageFactory(vertx, config).getStorage(); exportService = new FileSystemExportService(vertx.fileSystem(), eb, exportPath, expectedExports, notification, storage, userExport, new TimelineHelper(vertx, eb, config)); eventStore = EventStoreFactory.getFactory().getEventStore(Archive.class.getSimpleName()); Long periodicUserClear = config.getLong("periodicUserClear"); if (periodicUserClear != null) { vertx.setPeriodic(periodicUserClear, new Handler<Long>() { @Override public void handle(Long event) { final long limit = System.currentTimeMillis() - config.getLong("userClearDelay", 3600000l); Set<Map.Entry<String, Long>> entries = new HashSet<>(userExport.entrySet()); for (Map.Entry<String, Long> e : entries) { if (e.getValue() == null || e.getValue() < limit) { userExport.remove(e.getKey()); } } } }); } }
From source file:org.entcore.auth.Auth.java
License:Open Source License
@Override public void start() throws Exception { final EventBus eb = getEventBus(vertx); super.start(); setDefaultResourceFilter(new AuthResourcesProvider(new Neo(vertx, eb, null))); final UserAuthAccount userAuthAccount = new DefaultUserAuthAccount(vertx, config); final EventStore eventStore = EventStoreFactory.getFactory().getEventStore(Auth.class.getSimpleName()); AuthController authController = new AuthController(); authController.setEventStore(eventStore); authController.setUserAuthAccount(userAuthAccount); addController(authController);//from ww w . ja v a2 s . c o m final ConfigurationController configurationController = new ConfigurationController(); configurationController.setConfigurationService(new DefaultConfigurationService()); addController(configurationController); final String samlMetadataFolder = config.getString("saml-metadata-folder"); if (samlMetadataFolder != null && !samlMetadataFolder.trim().isEmpty()) { vertx.fileSystem().readDir(samlMetadataFolder, new Handler<AsyncResult<List<String>>>() { @Override public void handle(AsyncResult<List<String>> event) { if (event.succeeded() && event.result().size() > 0) { try { SamlController samlController = new SamlController(); JsonObject conf = config; vertx.deployVerticle(SamlValidator.class, new DeploymentOptions().setConfig(conf).setWorker(true)); samlController.setEventStore(eventStore); samlController.setUserAuthAccount(userAuthAccount); samlController.setServiceProviderFactory(new DefaultServiceProviderFactory( config.getJsonObject("saml-services-providers"))); samlController .setSignKey((String) vertx.sharedData().getLocalMap("server").get("signKey")); samlController.setSamlWayfParams(config.getJsonObject("saml-wayf")); samlController.setIgnoreCallBackPattern(config.getString("ignoreCallBackPattern")); addController(samlController); LocalMap<Object, Object> server = vertx.sharedData().getLocalMap("server"); if (server != null) { String loginUri = config.getString("loginUri"); String callbackParam = config.getString("callbackParam"); if (loginUri != null && !loginUri.trim().isEmpty()) { server.putIfAbsent("loginUri", loginUri); } if (callbackParam != null && !callbackParam.trim().isEmpty()) { server.putIfAbsent("callbackParam", callbackParam); } final JsonObject authLocations = config.getJsonObject("authLocations"); if (authLocations != null && authLocations.size() > 0) { server.putIfAbsent("authLocations", authLocations.encode()); } } } catch (ConfigurationException e) { log.error("Saml loading error.", e); } } } }); } final JsonObject openidFederate = config.getJsonObject("openid-federate"); final JsonObject openidConnect = config.getJsonObject("openid-connect"); final OpenIdConnectController openIdConnectController; if (openidFederate != null || openidConnect != null) { openIdConnectController = new OpenIdConnectController(); addController(openIdConnectController); } else { openIdConnectController = null; } if (openidConnect != null) { final String certsPath = openidConnect.getString("certs"); if (isNotEmpty(certsPath)) { JWT.listCertificates(vertx, certsPath, new Handler<JsonObject>() { @Override public void handle(JsonObject certs) { openIdConnectController.setCertificates(certs); } }); } } if (openidFederate != null) { openIdConnectController.setEventStore(eventStore); openIdConnectController.setUserAuthAccount(userAuthAccount); openIdConnectController.setSignKey((String) vertx.sharedData().getLocalMap("server").get("signKey")); openIdConnectController.setOpenIdConnectServiceProviderFactory( new DefaultOpenIdServiceProviderFactory(vertx, openidFederate.getJsonObject("domains"))); openIdConnectController.setSubMapping(openidFederate.getBoolean("authorizeSubMapping", false)); final JsonArray authorizedHostsLogin = openidFederate.getJsonArray("authorizedHostsLogin"); if (authorizedHostsLogin != null && authorizedHostsLogin.size() > 0) { authController.setAuthorizedHostsLogin(authorizedHostsLogin); } } }
From source file:org.entcore.auth.controllers.AuthController.java
License:Open Source License
@Override public void init(Vertx vertx, JsonObject config, RouteMatcher rm, Map<String, fr.wseduc.webutils.security.SecuredAction> securedActions) { super.init(vertx, config, rm, securedActions); JsonObject oic = config.getJsonObject("openid-connect"); OpenIdConnectService openIdConnectService = (oic != null) ? new DefaultOpendIdConnectService(oic.getString("iss"), vertx, oic.getString("keys")) : null;/*www .j a v a2 s .com*/ checkFederatedLogin = config.getBoolean("check-federated-login", false); oauthDataFactory = new OAuthDataHandlerFactory(Neo4j.getInstance(), MongoDb.getInstance(), openIdConnectService, checkFederatedLogin); GrantHandlerProvider grantHandlerProvider = new DefaultGrantHandlerProvider(); ClientCredentialFetcher clientCredentialFetcher = new ClientCredentialFetcherImpl(); token = new Token(); token.setDataHandlerFactory(oauthDataFactory); token.setGrantHandlerProvider(grantHandlerProvider); token.setClientCredentialFetcher(clientCredentialFetcher); AccessTokenFetcherProvider accessTokenFetcherProvider = new DefaultAccessTokenFetcherProvider(); protectedResource = new ProtectedResource(); protectedResource.setDataHandlerFactory(oauthDataFactory); protectedResource.setAccessTokenFetcherProvider(accessTokenFetcherProvider); passwordPattern = Pattern.compile(config.getString("passwordRegex", ".{8}.*")); LocalMap<Object, Object> server = vertx.sharedData().getLocalMap("server"); if (server != null && server.get("smsProvider") != null) smsProvider = (String) server.get("smsProvider"); slo = config.getBoolean("slo", false); // if (server != null) { // Boolean cluster = (Boolean) server.get("cluster"); // if (Boolean.TRUE.equals(cluster)) { // ClusterManager cm = ((VertxInternal) vertx).clusterManager(); // invalidEmails = cm.getSyncMap("invalidEmails"); // } else { // invalidEmails = vertx.sharedData().getMap("invalidEmails"); // } // } else { invalidEmails = MapFactory.getSyncClusterMap("invalidEmails", vertx); internalAddress = config.getJsonArray("internalAddress", new fr.wseduc.webutils.collections.JsonArray().add("localhost").add("127.0.0.1")).getList(); }
From source file:org.entcore.auth.controllers.AuthController.java
License:Open Source License
@Put("/block/:userId") @SecuredAction(value = "", type = ActionType.RESOURCE) public void blockUser(final HttpServerRequest request) { RequestUtils.bodyToJson(request, new io.vertx.core.Handler<JsonObject>() { @Override//from www . j a va2s .c o m public void handle(JsonObject json) { final String userId = request.params().get("userId"); boolean block = json.getBoolean("block", true); userAuthAccount.blockUser(userId, block, new io.vertx.core.Handler<Boolean>() { @Override public void handle(Boolean r) { if (Boolean.TRUE.equals(r)) { request.response().end(); UserUtils.deletePermanentSession(eb, userId, null, new io.vertx.core.Handler<Boolean>() { @Override public void handle(Boolean event) { if (!event) { log.error("Error delete permanent session with userId : " + userId); } } }); UserUtils.deleteCacheSession(eb, userId, new io.vertx.core.Handler<Boolean>() { @Override public void handle(Boolean event) { if (!event) { log.error("Error delete cache session with userId : " + userId); } } }); } else { badRequest(request); } } }); } }); }
From source file:org.entcore.auth.controllers.SamlController.java
License:Open Source License
@Override public void init(Vertx vertx, JsonObject config, RouteMatcher rm, Map<String, fr.wseduc.webutils.security.SecuredAction> securedActions) { super.init(vertx, config, rm, securedActions); // load soft-slo property : true = normal slo, false = redirect instead of slo softSlo = config.getBoolean("soft-slo", false); federatedAuthenticateError = config.getBoolean("federated-authenticate-error", false); // load nameQualifierRegex (in-case mongoDb NameId format change) String nameQualifierRegex = config.getString("nameQualifierRegex"); if (nameQualifierRegex != null && !nameQualifierRegex.trim().isEmpty()) { if (log.isDebugEnabled()) { log.debug("Using nameQualifierRegex specified : " + nameQualifierRegex); }/* w w w . j av a 2 s . c o m*/ this.NAME_QUALIFIER_REGEXP = nameQualifierRegex; } else { if (log.isDebugEnabled()) { log.debug("Using default nameQualifierRegex : " + NAME_QUALIFIER_REGEXP); } } }
From source file:org.entcore.auth.services.impl.AbstractSSOProvider.java
License:Open Source License
protected void executeMultiVectorQuery(String query, JsonObject params, final Assertion assertion, final Handler<Either<String, Object>> handler) { query += (RETURN_QUERY + ", s.name as structureName"); Neo4j.getInstance().execute(query, params, Neo4jResult.validResultHandler(new Handler<Either<String, JsonArray>>() { @Override//from ww w . j av a2 s. c om public void handle(final Either<String, JsonArray> event) { if (event.isRight()) { JsonArray ids = new fr.wseduc.webutils.collections.JsonArray(); final Set<String> userIds = new HashSet<>(); final JsonArray users = event.right().getValue(); for (Object o : users) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; if (j.getBoolean("blockedProfile", false)) { handler.handle(new Either.Left<String, Object>("blocked.profile")); return; } userIds.add(j.getString("id")); if (Utils.isNotEmpty(j.getString("id")) && !j.getBoolean("federated", false)) { ids.add(j.getString("id")); } } if (ids.size() > 0) { String query = "MATCH (u:User) WHERE u.id IN {ids} SET u.federated = true "; JsonObject params = new JsonObject().put("ids", ids); if (assertion != null && assertion.getIssuer() != null && assertion.getIssuer().getValue() != null && !assertion.getIssuer().getValue().trim().isEmpty()) { query += ", u.federatedIDP = {idp} "; params.put("idp", assertion.getIssuer().getValue()); } Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event2) { if (userIds.size() == 1) { handler.handle( new Either.Right<String, Object>(users.getJsonObject(0))); } else { handler.handle(new Either.Right<String, Object>(users)); } } }); } else { if (userIds.size() == 1) { handler.handle(new Either.Right<String, Object>(users.getJsonObject(0))); } else { handler.handle(new Either.Right<String, Object>(users)); } } } else { handler.handle(new Either.Left<String, Object>(event.left().getValue())); } } })); }
From source file:org.entcore.auth.services.impl.DefaultOpenIdServiceProviderFactory.java
License:Open Source License
public DefaultOpenIdServiceProviderFactory(Vertx vertx, JsonObject domains) { for (String domain : domains.fieldNames()) { JsonObject c = domains.getJsonObject(domain); OpenIdConnectServiceProvider provider; if ("France-Connect".equals(c.getString("provider"))) { provider = new FranceConnectServiceProvider(c.getString("iss")); } else {//from w w w . ja v a 2 s .co m provider = new DefaultOpendIdConnectService(c.getString("iss")); } provider.setSetFederated(c.getBoolean("set-federated", true)); services.put(domain, provider); try { OpenIdConnectClient oic = new OpenIdConnectClient(new URI(c.getString("uri")), c.getString("clientId"), c.getString("secret"), c.getString("authorizeUrn"), c.getString("tokenUrn"), c.getString("redirectUri"), vertx, 16, c.getString("certsUri")); oic.setUserInfoUrn(c.getString("userInfoUrn")); oic.setLogoutUri(c.getString("logoutUri")); oic.setBasic(c.getBoolean("basic-to-get-token", true)); openIdConnectClients.put(domain, oic); } catch (URISyntaxException e) { log.error("Invalid openid server uri", e); } } }
From source file:org.entcore.blog.security.BlogResourcesProvider.java
License:Open Source License
private void hasRightOnPost(final HttpServerRequest request, final UserInfos user, final Handler<Boolean> handler, String action) { String postId = request.params().get("postId"); if (StringUtils.isEmpty(postId)) { handler.handle(false);/* www . ja va 2s. co m*/ return; } // QueryBuilder query = QueryBuilder.start("_id").is(postId); request.pause(); mongo.findOne("posts", MongoQueryBuilder.build(query), null, new JsonArray().add("blog"), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { request.resume(); if ("ok".equals(event.body().getString("status"))) { JsonObject res = event.body().getJsonObject("result"); if (res == null) { handler.handle(false); return; } /** * Is author? */ if (res.getJsonObject("author") != null && user.getUserId().equals(res.getJsonObject("author").getString("userId"))) { handler.handle(true); return; } if (res.getJsonObject("blog") != null && res.getJsonObject("blog").getJsonArray("shared") != null) { /** * is author? */ String blogAuthorId = res.getJsonObject("blog") .getJsonObject("author", new JsonObject()).getString("userId"); if (blogAuthorId != null && blogAuthorId.equals(user.getUserId())) { handler.handle(true); return; } /** * has right action? */ for (Object o : res.getJsonObject("blog").getJsonArray("shared")) { if (!(o instanceof JsonObject)) continue; JsonObject json = (JsonObject) o; if (json != null && json.getBoolean(action, false) && (user.getUserId().equals(json.getString("userId")) || user.getGroupsIds().contains(json.getString("groupId")))) { handler.handle(true); return; } } } handler.handle(false); } } }); }
From source file:org.entcore.blog.services.impl.DefaultBlogTimelineService.java
License:Open Source License
private List<String> getSharedIds(JsonArray shared, String filterRights) { List<String> shareIds = new ArrayList<>(); for (Object o : shared) { if (!(o instanceof JsonObject)) continue; JsonObject userShared = (JsonObject) o; if (filterRights != null && !userShared.getBoolean(filterRights, false)) continue; String userOrGroupId = userShared.getString("groupId", userShared.getString("userId")); if (userOrGroupId != null && !userOrGroupId.trim().isEmpty()) { shareIds.add(userOrGroupId); }//from ww w . jav a2 s. c o m } return shareIds; }