t

akka.grpc.javadsl

ServerInterceptor

trait ServerInterceptor extends AnyRef

Cross-cutting logic around gRPC service calls, such as authentication, logging or metrics.

The interceptor runs before the request is unmarshalled. It can reject the call by returning a failed CompletionStage, for example with a akka.grpc.GrpcServiceException, which is turned into a gRPC error response using the default exception mapping of GrpcExceptionHandler. It can pass information to a Power API service implementation by adding request attributes, which are then available through Metadata.getAttribute. It can also wrap the response to observe the outcome of the call.

The interceptor is called from the server stream and must not block. The request entity is a stream that can only be consumed once, so an interceptor that reads it must not pass the same request to next.

Errors in streamed responses happen after the response headers are sent and are not visible to interceptors.

Annotations
@ApiMayChange() @FunctionalInterface()
Source
ServerInterceptor.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ServerInterceptor
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def intercept(serviceName: String, methodName: String, request: HttpRequest, next: Function[HttpRequest, CompletionStage[HttpResponse]]): CompletionStage[HttpResponse]

    serviceName

    the gRPC service name from the request path, without the leading slash

    methodName

    the gRPC method name from the request path

    next

    the rest of the chain, ending with the service handler

    Annotations
    @throws(classOf[Exception])

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    AnyRef → Any
  16. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  17. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped