Example usage for io.vertx.core.http HttpServerRequest resume

List of usage examples for io.vertx.core.http HttpServerRequest resume

Introduction

In this page you can find the example usage for io.vertx.core.http HttpServerRequest resume.

Prototype

@Override
    HttpServerRequest resume();

Source Link

Usage

From source file:com.englishtown.vertx.jersey.impl.DefaultJerseyHandler.java

License:Open Source License

protected void handle(final HttpServerRequest vertxRequest, final InputStream inputStream,
        final ContainerRequest jerseyRequest) {

    // Provide the vertx response writer
    jerseyRequest.setWriter(responseWriterProvider.get(vertxRequest, jerseyRequest));

    // Set entity stream if provided (form posts)
    if (inputStream != null) {
        jerseyRequest.setEntityStream(inputStream);
    }/* w w w . j a  va  2  s . co m*/

    // Copy headers
    for (Map.Entry<String, String> header : vertxRequest.headers().entries()) {
        jerseyRequest.getHeaders().add(header.getKey(), header.getValue());
    }

    // Set request scoped instances
    jerseyRequest.setRequestScopedInitializer(locator -> {
        locator.<Ref<HttpServerRequest>>getService((new TypeLiteral<Ref<HttpServerRequest>>() {
        }).getType()).set(vertxRequest);
        locator.<Ref<HttpServerResponse>>getService((new TypeLiteral<Ref<HttpServerResponse>>() {
        }).getType()).set(vertxRequest.response());
    });

    // Call vertx before request processors
    if (!requestProcessors.isEmpty()) {
        // Pause the vert.x request if we haven't already read the body
        if (inputStream == null) {
            vertxRequest.pause();
        }
        callVertxRequestProcessor(0, vertxRequest, jerseyRequest, aVoid -> {
            // Resume the vert.x request if we haven't already read the body
            if (inputStream == null) {
                vertxRequest.resume();
            }
            applicationHandlerDelegate.handle(jerseyRequest);
        });
    } else {
        applicationHandlerDelegate.handle(jerseyRequest);
    }

}

From source file:fr.wseduc.rack.controllers.RackController.java

License:Open Source License

private Handler<HttpServerFileUpload> getUploadHandler(final Buffer fileBuffer, final JsonObject metadata,
        final HttpServerRequest request) {
    return new Handler<HttpServerFileUpload>() {
        @Override/*from  w  w  w  .  j  a  va2s .c  o  m*/
        public void handle(final HttpServerFileUpload upload) {
            upload.handler(new Handler<Buffer>() {
                @Override
                public void handle(Buffer data) {
                    fileBuffer.appendBuffer(data);
                }
            });
            upload.endHandler(new Handler<Void>() {
                @Override
                public void handle(Void v) {
                    metadata.put("name", upload.name());
                    metadata.put("filename", upload.filename());
                    metadata.put("content-type", upload.contentType());
                    metadata.put("content-transfer-encoding", upload.contentTransferEncoding());
                    metadata.put("charset", upload.charset());
                    metadata.put("size", upload.size());
                    if (metadata.getLong("size", 0l).equals(0l)) {
                        metadata.put("size", fileBuffer.length());
                    }

                    if (storage.getValidator() != null) {
                        request.pause();
                        storage.getValidator().process(metadata, new JsonObject(),
                                new Handler<AsyncResult<Void>>() {
                                    @Override
                                    public void handle(AsyncResult<Void> voidAsyncResult) {
                                        if (voidAsyncResult.succeeded()) {
                                            request.resume();
                                        } else {
                                            badRequest(request, voidAsyncResult.cause().getMessage());
                                            return;
                                        }
                                    }
                                });
                    }
                }
            });
        }
    };
}

From source file:io.github.cdelmas.spike.vertx.infrastructure.auth.BearerAuthHandler.java

License:Apache License

@Override
public void handle(RoutingContext routingContext) {
    HttpServerRequest request = routingContext.request();
    request.pause();//from   w w  w .ja  va  2  s. co  m
    String authorization = request.headers().get(HttpHeaders.AUTHORIZATION);
    if (authorization == null) {
        routingContext.fail(401);
    } else {
        String[] parts = authorization.split(" ");
        if (parts.length != 2) {
            routingContext.fail(401);
        } else {
            String scheme = parts[0];
            if (!"bearer".equalsIgnoreCase(scheme)) {
                routingContext.fail(401);
            } else {
                String token = parts[1];
                JsonObject credentials = new JsonObject();
                credentials.put("token", token);

                authProvider.authenticate(credentials, res -> {
                    if (res.succeeded()) {
                        routingContext.setUser(res.result());
                        request.resume();
                        routingContext.next();
                    } else {
                        routingContext.fail(401);
                    }
                });
            }
        }
    }
}

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

License:Open Source License

@Post("/saml/post/sso/")
public void ssoredirectPost(final HttpServerRequest request) {
    log.info("ssoredirect POST called");
    request.setExpectMultipart(true);//from ww  w  .j  a va  2s.co  m
    request.pause();
    request.endHandler(new Handler<Void>() {
        @Override
        public void handle(Void v) {
            ssoRedirect(request.formAttributes().get("SAMLRequest"), request);
        }
    });
    request.resume();

}

From source file:org.entcore.auth.security.AuthResourcesProvider.java

License:Open Source License

private void isClassTeacher(final HttpServerRequest request, UserInfos user, final Handler<Boolean> handler) {
    request.pause();//from  w  w  w.j  a  v a 2s.  co  m
    if (user.getFunctions() != null && user.getFunctions().containsKey("SUPER_ADMIN")) {
        request.resume();
        handler.handle(true);
        return;
    }
    String id = request.params().get("userId");
    if (id == null || id.trim().isEmpty()) {
        handler.handle(false);
        return;
    }

    String query = "";
    if (user.getFunctions() != null && user.getFunctions().containsKey(DefaultFunctions.ADMIN_LOCAL)) {
        query = "MATCH (t:User { id : {teacherId}})-[:IN]->(fg:FunctionGroup)-[:DEPENDS]->(s:Structure)"
                + "<-[:DEPENDS]-(og:ProfileGroup)<-[:IN]-(u:User {id : {id}}) "
                + "WHERE fg.name =~ \".*AdminLocal.*\"" + "RETURN count(*) >= 1 as exists ";
    } else {
        query = "MATCH (t:User { id : {teacherId}})-[:IN]->(pg:ProfileGroup)-[:DEPENDS]->(c:Class)"
                + "<-[:DEPENDS]-(og:ProfileGroup)<-[:IN]-(u:User {id : {id}}) "
                + "RETURN count(*) >= 1 as exists ";
    }
    JsonObject params = new JsonObject().put("id", id).put("teacherId", user.getUserId());
    neo.execute(query, params, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> r) {
            JsonArray res = r.body().getJsonArray("result");
            request.resume();
            handler.handle("ok".equals(r.body().getString("status")) && res.size() == 1
                    && (res.getJsonObject(0)).getBoolean("exists", false));
        }
    });
}

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

License:Open Source License

private void executeCountQuery(final HttpServerRequest request, String collection, JsonObject query,
        final int expectedCountResult, final Handler<Boolean> handler) {
    request.pause();//from  w  w  w  . j  a  va 2s  .co  m
    mongo.count(collection, query, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            request.resume();
            JsonObject res = event.body();
            handler.handle(res != null && "ok".equals(res.getString("status"))
                    && expectedCountResult == res.getInteger("count"));
        }
    });
}

From source file:org.entcore.common.bus.WorkspaceHelper.java

License:Open Source License

private void uploadDocument(final HttpServerRequest request, final String id, final String name,
        final String application, final boolean protectedContent, final JsonArray thumbs,
        final Handler<AsyncResult<Message<JsonObject>>> handler) {
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override/* www. ja  v a 2 s .co m*/
        public void handle(final UserInfos userInfos) {
            if (userInfos != null) {
                request.resume();
                storage.writeUploadFile(request, new Handler<JsonObject>() {
                    @Override
                    public void handle(final JsonObject up) {
                        if (up != null && !"error".equals(up.getString("status"))) {
                            Handler<AsyncResult<Message<JsonObject>>> h = message -> {
                                if (message.failed()) {
                                    storage.removeFile(up.getString("_id"), new Handler<JsonObject>() {
                                        @Override
                                        public void handle(JsonObject event) {
                                            if (!"ok".equals(event.getString("status"))) {
                                                log.error("Error removing file " + up.getString("_id") + " : "
                                                        + event.getString("message"));
                                            }
                                        }
                                    });
                                }
                                if (handler != null) {
                                    handler.handle(message);
                                }
                            };
                            if (id != null && !id.trim().isEmpty()) {
                                updateDocument(id, up, name, thumbs, h);
                            } else {
                                addDocument(up, userInfos, name, application, protectedContent, thumbs, h);
                            }
                        } else {
                            if (handler != null) {
                                handleAsyncError("upload.error", handler);
                            }
                        }
                    }
                });
            } else {
                if (handler != null) {
                    handleAsyncError("invalid.user", handler);
                }
            }
        }
    });
}

From source file:org.entcore.common.http.EntAccessLogger.java

License:Open Source License

@Override
public void log(final HttpServerRequest request, final Handler<Void> handler) {
    request.pause();/* w  w w .ja  va2s.com*/
    UserUtils.getSession(eb, request, true, new Handler<JsonObject>() {
        @Override
        public void handle(JsonObject session) {
            if (session != null) {
                log.trace(formatLog(request) + " - " + session.getString("userId"));
            } else {
                log.trace(formatLog(request));
            }
            request.resume();
            handler.handle(null);
        }
    });
}

From source file:org.entcore.common.http.filter.AdmlResourcesProvider.java

License:Open Source License

protected void validateQuery(final HttpServerRequest request, final Handler<Boolean> handler, String query,
        JsonObject params) {/*from ww w .  j av  a 2 s.c  om*/
    request.pause();
    neo4j.execute(query, params, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> r) {
            request.resume();
            JsonArray res = r.body().getJsonArray("result");
            handler.handle("ok".equals(r.body().getString("status")) && res.size() == 1
                    && (res.getJsonObject(0)).getBoolean("exists", false));
        }
    });
}