Example usage for io.vertx.core.json JsonObject getBoolean

List of usage examples for io.vertx.core.json JsonObject getBoolean

Introduction

In this page you can find the example usage for io.vertx.core.json JsonObject getBoolean.

Prototype

public Boolean getBoolean(String key, Boolean def) 

Source Link

Document

Like #getBoolean(String) but specifying a default value to return if there is no entry.

Usage

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;
}