Package io.vertx.mutiny.ext.web.handler
Class MultiTenantHandler
java.lang.Object
io.vertx.mutiny.ext.web.handler.MultiTenantHandler
- All Implemented Interfaces:
MutinyDelegate,io.vertx.core.Handler<RoutingContext>,Consumer<RoutingContext>
public class MultiTenantHandler
extends Object
implements io.vertx.core.Handler<RoutingContext>, Consumer<RoutingContext>, MutinyDelegate
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
NOTE: This class has been automatically generated from the original non Mutiny-ified interface.
- Author:
- Paulo Lopes
- See Also:
-
MultiTenantHandler
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final TypeArg<MultiTenantHandler>static final StringThe default key used to identify a tenant in the context data. -
Constructor Summary
ConstructorsConstructorDescriptionMultiTenantHandler(io.vertx.ext.web.handler.MultiTenantHandler delegate) Create a new instance ofMultiTenantHandlerdelegating to the given (non-null) instance ofMultiTenantHandler.MultiTenantHandler(Object delegate) -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(RoutingContext item) Handle an item.addDefaultHandler(Consumer<RoutingContext> handler) Add a default handler for the case when no tenant was matched.addTenantHandler(String tenant, Consumer<RoutingContext> handler) Add a handler for a given tenant to this handler.static MultiTenantHandlerCreate a MultiTenant handler that will extract the tenant id from a given header name.static MultiTenantHandlercreate(Function<RoutingContext, String> tenantExtractor) Create a MultiTenant handler using a custom tenant extraction function.static MultiTenantHandlercreate(Function<RoutingContext, String> tenantExtractor, String contextKey) Create a MultiTenant handler using a custom tenant extraction function.booleanio.vertx.ext.web.handler.MultiTenantHandlerGet the delegate instance.voidhandle(RoutingContext item) Handle an item.inthashCode()static MultiTenantHandlernewInstance(io.vertx.ext.web.handler.MultiTenantHandler delegate) Creates a new instance of theMultiTenantHandler.removeTenant(String tenant) Remove a handler for a given tenant from this handler.toString()
-
Field Details
-
TENANT
The default key used to identify a tenant in the context data.- See Also:
-
__TYPE_ARG
-
-
Constructor Details
-
MultiTenantHandler
public MultiTenantHandler(io.vertx.ext.web.handler.MultiTenantHandler delegate) Create a new instance ofMultiTenantHandlerdelegating to the given (non-null) instance ofMultiTenantHandler. -
MultiTenantHandler
-
-
Method Details
-
accept
Handle an item. This method is generated from theoriginalmethod."- Specified by:
acceptin interfaceConsumer<RoutingContext>
-
handle
Handle an item. This method is generated from theoriginalmethod."- Specified by:
handlein interfaceio.vertx.core.Handler<RoutingContext>
-
getDelegate
public io.vertx.ext.web.handler.MultiTenantHandler getDelegate()Get the delegate instance.This method returns the instance on which this shim is delegating the calls. And so, give you access to the bare API.
- Specified by:
getDelegatein interfaceMutinyDelegate- Returns:
- the delegate instance
-
create
Create a MultiTenant handler that will extract the tenant id from a given header name.- Parameters:
header- the header to lookup (e.g.: "X-Tenant")- Returns:
- the new handler.
-
create
Create a MultiTenant handler using a custom tenant extraction function.- Parameters:
tenantExtractor- the function that extracts the tenant id from the request- Returns:
- the new handler.
-
create
public static MultiTenantHandler create(Function<RoutingContext, String> tenantExtractor, String contextKey) Create a MultiTenant handler using a custom tenant extraction function.- Parameters:
tenantExtractor- the function that extracts the tenant id from the requestcontextKey- the custom key to store the tenant id in the context- Returns:
- the new handler.
-
addTenantHandler
Add a handler for a given tenant to this handler. Both tenant and handler cannot be null.- Parameters:
tenant- the tenant idhandler- the handler to register.- Returns:
- a fluent reference to self.
- Throws:
In- case a handler is already present for that tenant.
-
removeTenant
Remove a handler for a given tenant from this handler. Tenant cannot be null.- Parameters:
tenant- the tenant id- Returns:
- a fluent reference to self.
-
addDefaultHandler
Add a default handler for the case when no tenant was matched. The handler cannot be null.- Parameters:
handler- the handler to register.- Returns:
- a fluent reference to self.
-
newInstance
Creates a new instance of theMultiTenantHandler. -
hashCode
public int hashCode() -
equals
-
toString
-