当前位置: 首页>>代码示例>>Java>>正文


Java Middleware类代码示例

本文整理汇总了Java中com.spotify.apollo.route.Middleware的典型用法代码示例。如果您正苦于以下问题:Java Middleware类的具体用法?Java Middleware怎么用?Java Middleware使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Middleware类属于com.spotify.apollo.route包,在下文中一共展示了Middleware类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: clientValidator

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
public static <T> Middleware<AsyncHandler<Response<T>>, AsyncHandler<Response<T>>> clientValidator(
    Supplier<List<String>> supplier) {
  return innerHandler -> requestContext -> {
    if (requestContext.request().header("User-Agent")
        // TODO: should the blacklist be a set so this lookup is O(1) instead of O(n) ?
        .map(header -> supplier.get().contains(header))
        .orElse(false)) {
      // TODO: fire some stats
      return
          completedFuture(Response.forStatus(Status.NOT_ACCEPTABLE.withReasonPhrase(
              "blacklisted client version, please upgrade")));
    } else {
      return innerHandler.invoke(requestContext);
    }
  };
}
 
开发者ID:spotify,项目名称:styx,代码行数:17,代码来源:Middlewares.java

示例2: exceptionHandler

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
public static <T> Middleware<AsyncHandler<Response<T>>, AsyncHandler<Response<T>>> exceptionHandler() {
  return innerHandler -> requestContext -> {
    try {
      return innerHandler.invoke(requestContext).handle((r, t) -> {
        if (t != null) {
          if (t instanceof ResponseException) {
            return ((ResponseException) t).getResponse();
          } else {
            throw new CompletionException(t);
          }
        } else {
          return r;
        }
      });
    } catch (ResponseException e) {
      return completedFuture(e.getResponse());
    }
  };
}
 
开发者ID:spotify,项目名称:styx,代码行数:20,代码来源:Middlewares.java

示例3: auditLogger

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
public static <T> Middleware<AsyncHandler<Response<T>>, AsyncHandler<Response<T>>> auditLogger() {
  return innerHandler -> requestContext -> {
    final Request request = requestContext.request();

    if (!"GET".equals(request.method())) {
      LOG.info("[AUDIT] {} {} by {} with headers {} parameters {} and payload {}",
               request.method(),
               request.uri(),
               auth(requestContext).user().map(idToken -> idToken.getPayload()
                   .getEmail())
                   .orElse("anonymous"),
               filterHeaders(request.headers()),
               request.parameters(),
               request.payload().map(ByteString::utf8).orElse("")
                   .replaceAll("\n", " "));
    }
    return innerHandler.invoke(requestContext);
  };
}
 
开发者ID:spotify,项目名称:styx,代码行数:20,代码来源:Middlewares.java

示例4: routes

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
Stream<? extends Route<? extends AsyncHandler<? extends Response<ByteString>>>> routes() {
  final String base = "/rkt/image";

  final EntityMiddleware em =
      EntityMiddleware.forCodec(JacksonEntityCodec.forMapper(Json.OBJECT_MAPPER));

  final List<Route<AsyncHandler<Response<ByteString>>>> entityRoutes = Stream.of(
      Route.with(
          em.serializerResponse(CatManifestOutput.class),
          DEFAULT_HTTP_METHOD, base + "/cat-manifest/<id>",
          rc -> catManifest(getId(rc))),
      Route.with(
          em.serializerResponse(GcOutput.class),
          DEFAULT_HTTP_METHOD, base + "/gc",
          rc -> gc(rc.request())),
      Route.with(
          em.serializerResponse(ListOutput.class),
          DEFAULT_HTTP_METHOD, base + "/list",
          rc -> list()),
      Route.with(
          em.serializerResponse(RmOutput.class),
          DEFAULT_HTTP_METHOD, base + "/rm",
          rc -> rm(rc.request())),
      Route.with(
          em.serializerResponse(RmOutput.class),
          DEFAULT_HTTP_METHOD, base + "/rm/<id>",
          rc -> rm(getId(rc)))
  )
      .map(r -> r.withMiddleware(Middleware::syncToAsync))
      .collect(toList());

  return Api.prefixRoutes(entityRoutes, Api.Version.V0);
}
 
开发者ID:honnix,项目名称:rkt-launcher,代码行数:34,代码来源:RktImageCommandResource.java

示例5: authed

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
private static <T> Middleware<Requested<Authenticated<T>>, AsyncHandler<Response<ByteString>>> authed() {
  return ar -> jsonAsync().apply(requestContext -> {
    final T payload = ar
        .apply(requestContext)
        .apply(auth(requestContext));
    return completedFuture(Response.forPayload(payload));
  });
}
 
开发者ID:spotify,项目名称:styx,代码行数:9,代码来源:Middlewares.java

示例6: authValidator

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
public static <T> Middleware<AsyncHandler<Response<T>>, AsyncHandler<Response<T>>> authValidator() {
  return h -> rc -> {
    if (!"GET".equals(rc.request().method())) {
      if (!auth(rc).user().isPresent()) {
        return completedFuture(
            Response.forStatus(Status.UNAUTHORIZED.withReasonPhrase("Unauthorized access")));
      }
    }

    return h.invoke(rc);
  };
}
 
开发者ID:spotify,项目名称:styx,代码行数:13,代码来源:Middlewares.java

示例7: routes

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
public Stream<Route<AsyncHandler<Response<ByteString>>>> routes() {
  final EntityMiddleware em =
      EntityMiddleware.forCodec(JacksonEntityCodec.forMapper(Json.OBJECT_MAPPER));

  return Stream.of(
      Route.with(
          em.response(Event.class),
          "POST", BASE + "/events",
          rc -> this::injectEvent),
      Route.with(
          em.response(WorkflowInstance.class),
          "POST", BASE + "/trigger",
          rc -> this::triggerWorkflowInstance),
      Route.with(
          em.response(WorkflowInstance.class),
          "POST", BASE + "/retry",
          rc -> payload -> retryWorkflowInstanceAfter(rc, payload)),
      Route.with(
          em.response(WorkflowInstance.class),
          "POST", BASE + "/halt",
          rc -> this::haltWorkflowInstance),
      Route.with(
          em.response(WorkflowConfiguration.class, Workflow.class),
          "POST", BASE + "/workflows/<cid>",
          rc -> workflow -> createOrUpdateWorkflow(rc.pathArgs().get("cid"), workflow)),
      Route.with(
          em.serializerResponse(ByteString.class),
          "DELETE", BASE + "/workflows/<cid>/<wfid>",
          rc -> deleteWorkflow(rc.pathArgs().get("cid"), rc.pathArgs().get("wfid")))
  )

      .map(r -> r.withMiddleware(Middleware::syncToAsync));
}
 
开发者ID:spotify,项目名称:styx,代码行数:34,代码来源:SchedulerResource.java

示例8: routes

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
Stream<? extends Route<? extends AsyncHandler<? extends Response<ByteString>>>> routes() {
  final String base = "/rkt";

  final EntityMiddleware em =
      EntityMiddleware.forCodec(JacksonEntityCodec.forMapper(Json.OBJECT_MAPPER));

  final List<Route<AsyncHandler<Response<ByteString>>>> entityRoutes = Stream.of(
      Route.with(
          em.serializerResponse(CatManifestOutput.class),
          DEFAULT_HTTP_METHOD, base + "/cat-manifest/<id>",
          rc -> catManifest(getId(rc))),
      Route.with(
          em.serializerResponse(ConfigOutput.class),
          DEFAULT_HTTP_METHOD, base + "/config",
          rc -> config()),
      Route.with(
          em.serializerResponse(FetchOutput.class),
          DEFAULT_HTTP_METHOD, base + "/fetch",
          rc -> fetch(rc.request())),
      Route.with(
          em.serializerResponse(GcOutput.class),
          DEFAULT_HTTP_METHOD, base + "/gc",
          rc -> gc(rc.request())),
      Route.with(
          em.serializerResponse(ListOutput.class),
          DEFAULT_HTTP_METHOD, base + "/list",
          rc -> list()),
      Route.with(
          em.response(PrepareOptions.class, PrepareOutput.class),
          DEFAULT_HTTP_METHOD, base + "/prepare",
          rc -> payload -> prepare(payload, rc.request())),
      Route.with(
          em.serializerResponse(RmOutput.class),
          DEFAULT_HTTP_METHOD, base + "/rm",
          rc -> rm(rc.request())),
      Route.with(
          em.serializerResponse(RmOutput.class),
          DEFAULT_HTTP_METHOD, base + "/rm/<id>",
          rc -> rm(getId(rc))),
      Route.with(
          em.response(RunOptions.class, RunOutput.class),
          DEFAULT_HTTP_METHOD, base + "/run",
          rc -> payload -> run(rc.request(), payload)),
      Route.with(
          em.serializerResponse(RunOutput.class),
          DEFAULT_HTTP_METHOD, base + "/run-prepared/<id>",
          rc -> runPrepared(getId(rc), rc.request())),
      Route.with(
          em.serializerResponse(StatusOutput.class),
          DEFAULT_HTTP_METHOD, base + "/status/<id>",
          rc -> status(getId(rc), rc.request())),
      Route.with(
          em.serializerResponse(StopOutput.class),
          DEFAULT_HTTP_METHOD, base + "/stop",
          rc -> stop(rc.request())),
      Route.with(
          em.serializerResponse(StopOutput.class),
          DEFAULT_HTTP_METHOD, base + "/stop/<id>",
          rc -> stop(getId(rc), rc.request())),
      Route.with(
          em.serializerResponse(TrustOutput.class),
          DEFAULT_HTTP_METHOD, base + "/trust",
          rc -> trust(rc.request())),
      Route.with(
          em.serializerResponse(VersionOutput.class),
          DEFAULT_HTTP_METHOD, base + "/version",
          rc -> version())
  )
      .map(r -> r.withMiddleware(Middleware::syncToAsync))
      .collect(toList());

  return Api.prefixRoutes(entityRoutes, Api.Version.V0);
}
 
开发者ID:honnix,项目名称:rkt-launcher,代码行数:74,代码来源:RktCommandResource.java

示例9: json

import com.spotify.apollo.route.Middleware; //导入依赖的package包/类
public static Middleware<SyncHandler<? extends Response<?>>, AsyncHandler<Response<ByteString>>>
    json() {
  return innerHandler -> jsonAsync().apply(Middleware.syncToAsync(innerHandler));
}
 
开发者ID:spotify,项目名称:styx,代码行数:5,代码来源:Middlewares.java


注:本文中的com.spotify.apollo.route.Middleware类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。