List of usage examples for io.vertx.core.json JsonObject getJsonObject
public JsonObject getJsonObject(String key)
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; }