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

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

Introduction

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

Prototype

public JsonObject getJsonObject(String key) 

Source Link

Document

Get the JsonObject value with the specified key

Usage

From source file:org.eclipse.hono.util.RequestResponseApiConstants.java

License:Open Source License

/**
 * Build a Proton message as a reply for an endpoint from the json payload that e.g. is received from the vert.x eventbus
 * from the implementing service./*  w  w  w.j  a  v a  2  s .  c  o m*/
 *
 * @param endpoint The endpoint the reply message will be built for.
 * @param payload The json payload received.
 * @return Message The built Proton message.
 */
public static final Message getAmqpReply(final String endpoint, final JsonObject payload) {
    final String tenantId = payload.getString(FIELD_TENANT_ID);
    final String deviceId = payload.getString(FIELD_DEVICE_ID);
    final String status = payload.getString(MessageHelper.APP_PROPERTY_STATUS);
    final JsonObject correlationIdJson = payload.getJsonObject(MessageHelper.SYS_PROPERTY_CORRELATION_ID);
    final Object correlationId = MessageHelper.decodeIdFromJson(correlationIdJson);
    final boolean isApplCorrelationId = payload.getBoolean(MessageHelper.ANNOTATION_X_OPT_APP_CORRELATION_ID,
            false);
    return getAmqpReply(endpoint, status, correlationId, tenantId, deviceId, isApplCorrelationId,
            payload.getJsonObject(CredentialsConstants.FIELD_PAYLOAD));
}

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);/*  www  . j  av a  2 s.  co 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;//ww  w.j  a  v  a2 s . co m
    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

public static void logoutCallback(final HttpServerRequest request, String c, JsonObject config, EventBus eb) {
    final String sessionId = CookieHelper.getInstance().getSigned("oneSessionId", request);
    final StringBuilder callback = new StringBuilder();
    if (c != null && !c.trim().isEmpty()) {
        if (c.contains("_current-domain_")) {
            c = c.replaceAll("_current\\-domain_", request.headers().get("Host"));
        }/*from   ww w  .  ja  v  a2 s.c  om*/
        try {
            callback.append(URLDecoder.decode(c, "UTF-8"));
        } catch (UnsupportedEncodingException e) {
            log.error(e.getMessage(), e);
            callback.append(config.getJsonObject("authenticationServer").getString("logoutCallback", "/"));
        }
    } else {
        callback.append(config.getJsonObject("authenticationServer").getString("logoutCallback", "/"));
    }

    if (sessionId != null && !sessionId.trim().isEmpty()) {
        UserUtils.deleteSession(eb, sessionId, new io.vertx.core.Handler<Boolean>() {

            @Override
            public void handle(Boolean deleted) {
                if (Boolean.TRUE.equals(deleted)) {
                    CookieHelper.set("oneSessionId", "", 0l, request);
                    CookieHelper.set("authenticated", "", 0l, request);
                }
                redirect(request, callback.toString(), "");
            }
        });
    } else {
        redirect(request, callback.toString(), "");
    }
}

From source file:org.entcore.auth.controllers.ConfigurationController.java

License:Open Source License

@Get("/configure/welcome")
public void getWelcomeMessage(final HttpServerRequest request) {
    final String host = getHost(request);
    final String language = request.params().get("allLanguages") != null ? null
            : I18n.acceptLanguage(request).split(",")[0].split("\\-")[0];
    configurationService.getWelcomeMessage(host, language, new Handler<Either<String, JsonObject>>() {
        @Override//w w w  .  j  a  va2 s.  c om
        public void handle(Either<String, JsonObject> event) {
            if (event.isRight()) {
                if (event.right().getValue() != null && event.right().getValue().size() > 0) {
                    JsonObject res = event.right().getValue();
                    if (res.getJsonObject(host) != null && language != null
                            && res.getJsonObject(host).getString(language) != null) {
                        renderJson(request,
                                new JsonObject()
                                        .put("welcomeMessage", res.getJsonObject(host).getString(language))
                                        .put("enabled", res.getJsonObject(host).getBoolean("enabled", false)));
                    } else if (res.getJsonObject(host) != null) {
                        if (!res.getJsonObject(host).containsKey("enabled")) {
                            res.getJsonObject(host).put("enabled", false);
                        }
                        renderJson(request, res.getJsonObject(host));
                    } else {
                        renderJson(request, res);
                    }
                } else {
                    notFound(request);
                }
            } else {
                badRequest(request, event.left().getValue());
            }
        }
    });
}

From source file:org.entcore.auth.oauth.OAuthDataHandler.java

License:Open Source License

@Override
public void createOrUpdateAccessToken(final AuthInfo authInfo, final Handler<AccessToken> handler) {
    if (authInfo != null) {
        final JsonObject query = new JsonObject().put("authId", authInfo.getId());
        mongo.count(ACCESS_TOKEN_COLLECTION, query, new io.vertx.core.Handler<Message<JsonObject>>() {
            @Override//  w  w w .j  a  va 2s .co  m
            public void handle(Message<JsonObject> event) {
                if ("ok".equals(event.body().getString("status")) && (event.body().getInteger("count", 1) == 0
                        || isNotEmpty(authInfo.getRefreshToken()))) {
                    final JsonObject token = new JsonObject().put("authId", authInfo.getId())
                            .put("token", UUID.randomUUID().toString()).put("createdOn", MongoDb.now())
                            .put("expiresIn", 3600);
                    if (openIdConnectService != null && authInfo.getScope() != null
                            && authInfo.getScope().contains("openid")) {
                        //"2.0".equals(RequestUtils.getAcceptVersion(getRequest().getHeader("Accept")))) {
                        openIdConnectService.generateIdToken(authInfo.getUserId(), authInfo.getClientId(),
                                new io.vertx.core.Handler<AsyncResult<String>>() {
                                    @Override
                                    public void handle(AsyncResult<String> ar) {
                                        if (ar.succeeded()) {
                                            token.put("id_token", ar.result());
                                            persistToken(token);
                                        } else {
                                            log.error("Error generating id_token.", ar.cause());
                                            handler.handle(null);
                                        }
                                    }
                                });
                    } else {
                        persistToken(token);
                    }
                } else { // revoke existing token and code with same authId
                    mongo.delete(ACCESS_TOKEN_COLLECTION, query);
                    mongo.delete(AUTH_INFO_COLLECTION, new JsonObject().put("_id", authInfo.getId()));
                    handler.handle(null);
                }
            }

            private void persistToken(final JsonObject token) {
                mongo.save(ACCESS_TOKEN_COLLECTION, token, new io.vertx.core.Handler<Message<JsonObject>>() {

                    @Override
                    public void handle(Message<JsonObject> res) {
                        if ("ok".equals(res.body().getString("status"))) {
                            AccessToken t = new AccessToken();
                            t.setAuthId(authInfo.getId());
                            t.setToken(token.getString("token"));
                            t.setCreatedOn(new Date(token.getJsonObject("createdOn").getLong("$date")));
                            t.setExpiresIn(3600);
                            if (token.containsKey("id_token")) {
                                t.setIdToken(token.getString("id_token"));
                            }
                            handler.handle(t);
                        } else {
                            handler.handle(null);
                        }
                    }
                });
            }
        });
    } else {
        handler.handle(null);
    }
}

From source file:org.entcore.auth.oauth.OAuthDataHandler.java

License:Open Source License

@Override
public void getAccessToken(String token, final Handler<AccessToken> handler) {
    if (token != null && !token.trim().isEmpty()) {
        JsonObject query = new JsonObject().put("token", token);
        mongo.findOne(ACCESS_TOKEN_COLLECTION, query, new io.vertx.core.Handler<Message<JsonObject>>() {

            @Override// w w  w. j  a  v a 2s.c  o  m
            public void handle(Message<JsonObject> res) {
                JsonObject r = res.body().getJsonObject("result");
                if ("ok".equals(res.body().getString("status")) && r != null && r.size() > 0) {
                    AccessToken t = new AccessToken();
                    t.setAuthId(r.getString("authId"));
                    t.setToken(r.getString("token"));
                    t.setCreatedOn(MongoDb.parseIsoDate(r.getJsonObject("createdOn")));
                    t.setExpiresIn(r.getInteger("expiresIn"));
                    handler.handle(t);
                } else {
                    handler.handle(null);
                }
            }
        });
    } else {
        handler.handle(null);
    }
}

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 {//  w w  w  . j ava 2  s. c  o  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.auth.users.DefaultUserAuthAccount.java

License:Open Source License

private void updatePassword(final Handler<Boolean> handler, String query, String password,
        Map<String, Object> params) {
    final String pw = BCrypt.hashpw(password, BCrypt.gensalt());
    params.put("password", pw);
    neo.send(query, params, new Handler<Message<JsonObject>>() {

        @Override//  w  w  w. j a v a 2 s  .  c o m
        public void handle(Message<JsonObject> res) {
            JsonObject r = res.body().getJsonObject("result");
            handler.handle("ok".equals(res.body().getString("status")) && r.getJsonObject("0") != null
                    && pw.equals(r.getJsonObject("0").getString("pw")));
        }
    });
}

From source file:org.entcore.blog.events.BlogSearchingEvents.java

License:Open Source License

private JsonArray formatSearchResult(final JsonArray results, final JsonArray columnsHeader,
        final List<String> words) {
    final List<String> aHeader = columnsHeader.getList();
    final JsonArray traity = new JsonArray();

    for (int i = 0; i < results.size(); i++) {
        final JsonObject j = results.getJsonObject(i);
        final JsonObject jr = new JsonObject();
        if (j != null) {
            final String blogId = j.getJsonObject("blog").getString("$id");
            jr.put(aHeader.get(0), j.getString("title"));
            jr.put(aHeader.get(1), j.getString("content", ""));
            jr.put(aHeader.get(2), j.getJsonObject("modified"));
            jr.put(aHeader.get(3), j.getJsonObject("author").getString("username"));
            jr.put(aHeader.get(4), j.getJsonObject("author").getString("userId"));
            jr.put(aHeader.get(5), "/blog#/view/" + blogId + "/" + j.getString("_id"));
            traity.add(jr);//from w  ww  . j a va 2  s  . c om
        }
    }
    return traity;
}