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

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

Introduction

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

Prototype

public String encode() 

Source Link

Document

Encode this JSON object as a string.

Usage

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);/* w  ww  . j  a v a 2s  .  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.OpenIdConnectController.java

License:Open Source License

@Get("/openid/authenticate")
public void authenticate(final HttpServerRequest request) {
    final OpenIdConnectServiceProvider openIdConnectServiceProvider = openIdConnectServiceProviderFactory
            .serviceProvider(request);/*w  w w .ja va 2  s.  c om*/
    if (openIdConnectServiceProvider == null)
        return;
    OpenIdConnectClient oic = openIdConnectServiceProviderFactory.openIdClient(request);
    if (oic == null)
        return;
    final String state = CookieHelper.getInstance().getSigned("csrfstate", request);
    if (state == null) {
        forbidden(request, "invalid_state");
        return;
    }
    final String nonce = CookieHelper.getInstance().getSigned("nonce", request);
    if (nonce == null) {
        forbidden(request, "invalid_replay");
        return;
    }
    oic.authorizationCodeToken(request, state, nonce, new Handler<JsonObject>() {
        @Override
        public void handle(final JsonObject payload) {
            if (payload != null) {
                log.info("payload : " + payload.encode());
                openIdConnectServiceProvider.executeFederate(payload, new Handler<Either<String, Object>>() {
                    @Override
                    public void handle(Either<String, Object> res) {
                        if (res.isRight() && res.right().getValue() instanceof JsonObject) {
                            authenticate((JsonObject) res.right().getValue(), "_",
                                    payload.getString("id_token_hint"), request);
                        } else if (subMapping && res.isLeft()
                                && OpenIdConnectServiceProvider.UNRECOGNIZED_USER_IDENTITY
                                        .equals(res.left().getValue())) {
                            final String p = payload.encode();
                            try {
                                JsonObject params = new JsonObject().put("payload", p).put("key",
                                        HmacSha1.sign(p, signKey));
                                renderView(request, params, "mappingFederatedUser.html", null);
                            } catch (Exception e) {
                                log.error("Error loading mapping openid connect identity.", e);
                                renderError(request);
                            }
                        } else {
                            forbidden(request, "invalid.payload");
                        }
                    }
                });
            } else {
                forbidden(request, "invalid_token");
            }
        }
    });
}

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

License:Open Source License

private void createAuthInfo(String clientId, String userId, String scope, String redirectUri,
        final Handler<AuthInfo> handler) {
    final JsonObject auth = new JsonObject().put("clientId", clientId).put("userId", userId).put("scope", scope)
            .put("createdAt", MongoDb.now()).put("refreshToken", UUID.randomUUID().toString());
    if (redirectUri != null) {
        auth.put("redirectUri", redirectUri).put("code", UUID.randomUUID().toString());
    }//from  w  w  w. j a va 2  s.c o  m
    mongo.save(AUTH_INFO_COLLECTION, auth, new io.vertx.core.Handler<Message<JsonObject>>() {

        @Override
        public void handle(Message<JsonObject> res) {
            if ("ok".equals(res.body().getString("status"))) {
                auth.put("id", res.body().getString("_id"));
                auth.remove("createdAt");
                ObjectMapper mapper = new ObjectMapper();
                try {
                    handler.handle(mapper.readValue(auth.encode(), AuthInfo.class));
                } catch (IOException e) {
                    handler.handle(null);
                }
            } else {
                handler.handle(null);
            }
        }
    });
}

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

License:Open Source License

@Override
public void getAuthInfoByCode(String code, final Handler<AuthInfo> handler) {
    if (code != null && !code.trim().isEmpty()) {
        JsonObject query = new JsonObject().put("code", code).put("createdAt", new JsonObject().put("$gte",
                new JsonObject().put("$date", System.currentTimeMillis() - CODE_EXPIRES)));
        mongo.findOne(AUTH_INFO_COLLECTION, query, new io.vertx.core.Handler<Message<JsonObject>>() {

            @Override//  w  ww . ja  v  a  2  s .c om
            public void handle(Message<JsonObject> res) {
                JsonObject r = res.body().getJsonObject("result");
                if ("ok".equals(res.body().getString("status")) && r != null && r.size() > 0) {
                    r.put("id", r.getString("_id"));
                    r.remove("_id");
                    r.remove("createdAt");
                    ObjectMapper mapper = new ObjectMapper();
                    try {
                        handler.handle(mapper.readValue(r.encode(), AuthInfo.class));
                    } catch (IOException e) {
                        handler.handle(null);
                    }
                } else {
                    handler.handle(null);
                }
            }
        });
    } else {
        handler.handle(null);
    }
}

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

License:Open Source License

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

            @Override//w  ww  .ja v  a  2 s  .com
            public void handle(Message<JsonObject> res) {
                if ("ok".equals(res.body().getString("status"))) {
                    JsonObject r = res.body().getJsonObject("result");
                    if (r == null) {
                        handler.handle(null);
                        return;
                    }
                    r.put("id", r.getString("_id"));
                    r.remove("_id");
                    r.remove("createdAt");
                    ObjectMapper mapper = new ObjectMapper();
                    try {
                        handler.handle(mapper.readValue(r.encode(), AuthInfo.class));
                    } catch (IOException e) {
                        handler.handle(null);
                    }
                } else {
                    handler.handle(null);
                }
            }
        });
    } else {
        handler.handle(null);
    }
}

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

License:Open Source License

@Override
public void getAuthInfoById(String id, final Handler<AuthInfo> handler) {
    if (id != null && !id.trim().isEmpty()) {
        JsonObject query = new JsonObject().put("_id", id);
        mongo.findOne(AUTH_INFO_COLLECTION, query, new io.vertx.core.Handler<Message<JsonObject>>() {

            @Override/*from  www.j  a  va  2s. co  m*/
            public void handle(Message<JsonObject> res) {
                if ("ok".equals(res.body().getString("status"))) {
                    JsonObject r = res.body().getJsonObject("result");
                    r.put("id", r.getString("_id"));
                    r.remove("_id");
                    r.remove("createdAt");
                    ObjectMapper mapper = new ObjectMapper();
                    try {
                        handler.handle(mapper.readValue(r.encode(), AuthInfo.class));
                    } catch (IOException e) {
                        handler.handle(null);
                    }
                } else {
                    handler.handle(null);
                }
            }
        });
    } else {
        handler.handle(null);
    }
}

From source file:org.entcore.cas.data.EntCoreDataHandler.java

License:Open Source License

private AuthCas deserialize(JsonObject res) {
    if (res == null) {
        return null;
    }/*from ww w  . j a  v a2  s.co  m*/
    res.remove("updatedAt");
    try {
        return mapper.readValue(res.encode(), AuthCas.class);
    } catch (IOException e) {
        log.error(e.getMessage(), e);
        return null;
    }
}

From source file:org.entcore.common.elasticsearch.BulkRequest.java

License:Open Source License

public void index(JsonObject element, JsonObject metadata) {
    if (element == null)
        return;/*w w  w . j a va 2  s . com*/
    if (metadata == null) {
        metadata = new JsonObject();
        final Object id = element.remove("_id");
        if (id != null) {
            metadata.put("_id", id);
        }
    }
    request.write(new JsonObject().put("index", metadata).encode() + "\n" + element.encode() + "\n");
}

From source file:org.entcore.common.elasticsearch.ElasticSearch.java

License:Open Source License

private void postInternal(String path, int expectedStatus, JsonObject payload,
        Handler<AsyncResult<JsonObject>> handler) {
    final ElasticSearchClient esc = getClient();
    final HttpClientRequest req = esc.client.post(path, event -> {
        if (event.statusCode() == expectedStatus) {
            event.bodyHandler(respBody -> handler.handle(new DefaultAsyncResult<>(new JsonObject(respBody))));
        } else {//from   ww  w. j a  v a 2s .co m
            handler.handle(new DefaultAsyncResult<>(new ElasticSearchException(event.statusMessage())));
        }
        esc.checkSuccess();
    });
    req.exceptionHandler(e -> checkDisableClientAfterError(esc, e));
    req.putHeader("Content-Type", "application/json");
    req.putHeader("Accept", "application/json; charset=UTF-8");
    req.end(payload.encode());
}

From source file:org.entcore.common.events.impl.BusEventStore.java

License:Open Source License

@Override
protected void storeEvent(final JsonObject event, final Handler<Either<String, Void>> handler) {
    eventBus.send("event.store", event, new Handler<AsyncResult<Message<JsonObject>>>() {
        @Override/*from  w  w  w . j a  va  2  s.co m*/
        public void handle(AsyncResult<Message<JsonObject>> res) {
            if (res.succeeded()) {
                handler.handle(new Either.Right<String, Void>(null));
            } else {
                handler.handle(new Either.Left<String, Void>(
                        "Error : " + res.cause().getMessage() + ", Event : " + event.encode()));
            }
        }
    });
}