Class TokenMiddleware
- java.lang.Object
-
- com.networknt.aws.lambda.handler.middleware.token.TokenMiddleware
-
- All Implemented Interfaces:
LambdaHandler,MiddlewareHandler
public class TokenMiddleware extends Object implements 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
Constructors Constructor Description TokenMiddleware()TokenMiddleware(com.networknt.router.middleware.TokenConfig cfg)Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.networknt.status.Statusexecute(LightLambdaExchange exchange)voidgetCachedConfigurations()static com.networknt.monad.Result<com.networknt.client.oauth.Jwt>getJwtToken(String serviceId)booleanisAsynchronous()Indicate if this middleware handler is asynchronous or not.booleanisAudited()Indicate if this middleware handler is audited or not.booleanisContinueOnFailure()Indicate if this middleware handler will continue on failure or not.booleanisEnabled()Indicate 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, wait
-
Methods inherited from interface com.networknt.aws.lambda.handler.LambdaHandler
disabledMiddlewareStatus, isResponseMiddleware, successMiddlewareStatus
-
-
-
-
Constructor Detail
-
TokenMiddleware
public TokenMiddleware()
-
TokenMiddleware
@Deprecated public TokenMiddleware(com.networknt.router.middleware.TokenConfig cfg)
Deprecated.This constructor should only be used for testing. Hence, it is marked as deprecated.- Parameters:
cfg- config
-
-
Method Detail
-
execute
public com.networknt.status.Status execute(LightLambdaExchange exchange)
- 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
-
-