Class TokenMiddleware
java.lang.Object
com.networknt.aws.lambda.handler.middleware.token.TokenMiddleware
- All Implemented Interfaces:
LambdaHandler,MiddlewareHandler
This middleware is used to get the jwt token for the client credential grant type and put it into the Authorization
header when the backend lambda function is invoking another service. The token is cached in the cache manager and
it only retrieves a new one before the current one is expired.
This is to support the east west security between the services in the light lambda native platform. The middleware
will check if service_id header is in the request. Normally, this id should map to an ALB or API Gateway endpoint
that is used to call another Lambda function or a service running in a container. When service_url is in the header,
it is going to be used to invoke the downstream API, otherwise, the downstream URL will be discovered from the config.
-
Field Summary
Fields inherited from interface com.networknt.aws.lambda.handler.LambdaHandler
DISABLED_LAMBDA_HANDLER_RETURN, SUCCESS_LAMBDA_HANDLER_RETURN -
Constructor Summary
ConstructorsConstructorDescriptionTokenMiddleware(com.networknt.router.middleware.TokenConfig cfg) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptioncom.networknt.status.Statusexecute(LightLambdaExchange exchange) voidstatic com.networknt.monad.Result<com.networknt.client.oauth.Jwt> getJwtToken(String serviceId) booleanIndicate if this middleware handler is asynchronous or not.booleanIndicate if this middleware handler is audited or not.booleanIndicate if this middleware handler will continue on failure or not.booleanIndicate if this handler is enabled or not.voidregister()Register this handler to the handler registration.voidreload()Reload config values in case the config values changed by config server.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.networknt.aws.lambda.handler.LambdaHandler
disabledMiddlewareStatus, isResponseMiddleware, successMiddlewareStatus
-
Constructor Details
-
TokenMiddleware
public TokenMiddleware() -
TokenMiddleware
Deprecated.This constructor should only be used for testing. Hence, it is marked as deprecated.- Parameters:
cfg- config
-
-
Method Details
-
execute
- Specified by:
executein interfaceLambdaHandler
-
getJwtToken
public static com.networknt.monad.Result<com.networknt.client.oauth.Jwt> getJwtToken(String serviceId) -
isContinueOnFailure
public boolean isContinueOnFailure()Description copied from interface:MiddlewareHandlerIndicate if this middleware handler will continue on failure or not.- Specified by:
isContinueOnFailurein interfaceMiddlewareHandler- Returns:
- boolean true if continue on failure
-
isAudited
public boolean isAudited()Description copied from interface:MiddlewareHandlerIndicate if this middleware handler is audited or not.- Specified by:
isAuditedin interfaceMiddlewareHandler- Returns:
- boolean true if audited
-
getCachedConfigurations
public void getCachedConfigurations()- Specified by:
getCachedConfigurationsin interfaceMiddlewareHandler
-
isEnabled
public boolean isEnabled()Description copied from interface:LambdaHandlerIndicate if this handler is enabled or not.- Specified by:
isEnabledin interfaceLambdaHandler- Returns:
- boolean true if enabled
-
register
public void register()Description copied from interface:LambdaHandlerRegister this handler to the handler registration.- Specified by:
registerin interfaceLambdaHandler
-
reload
public void reload()Description copied from interface:LambdaHandlerReload config values in case the config values changed by config server.- Specified by:
reloadin interfaceLambdaHandler
-
isAsynchronous
public boolean isAsynchronous()Description copied from interface:LambdaHandlerIndicate if this middleware handler is asynchronous or not.- Specified by:
isAsynchronousin interfaceLambdaHandler- Returns:
- boolean true if asynchronous
-