class MultiTenantHandler extends Handler[RoutingContext]

A handler which selectively executes another handler if a precondition is met.

There are cases where applications are build as multi tenant, in this cases one of the common tasks is to configure different authentication mechanisms for each tenant.

This handler will allow registering any other handler and will only execute it if the precondition is met. There are 2 way of defining a precondition:

  • A http header value for example
    X-Tenant
    
  • A custom extractor function that can return a String from the context

Requests that pass the validation will contain a new key in the routing context with the tenant id, for the case of being a default handler the value if this key will be "default".

Linear Supertypes
Handler[RoutingContext], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MultiTenantHandler
  2. Handler
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MultiTenantHandler(_asJava: AnyRef)

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. def addDefaultHandler(handler: Handler[RoutingContext]): MultiTenantHandler

    Add a default handler for the case when no tenant was matched.

    Add a default handler for the case when no tenant was matched.

    The handler cannot be null. * @param handler the handler to register.

    returns

    a fluent reference to self.

  5. def addTenantHandler(tenant: String, handler: Handler[RoutingContext]): MultiTenantHandler

    Add a handler for a given tenant to this handler.

    Add a handler for a given tenant to this handler.

    Both tenant and handler cannot be null. * @param tenant the tenant id

    handler

    the handler to register.

    returns

    a fluent reference to self.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def asJava: AnyRef
  8. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def handle(arg0: RoutingContext): Unit
    Definition Classes
    MultiTenantHandler → Handler
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def removeTenant(tenant: String): MultiTenantHandler

    Remove a handler for a given tenant from this handler.

    Remove a handler for a given tenant from this handler.

    Tenant cannot be null. * @param tenant the tenant id

    returns

    a fluent reference to self.

  20. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from Handler[RoutingContext]

Inherited from AnyRef

Inherited from Any

Ungrouped