В AWS Api Gateway Custom Authorizer, как добавить пользовательские заголовки во входной запрос на основе проверки заголовков и отправить в бэкэнд
В шлюзе AWS API я использую собственный лямбда-авторизатор для проверки заголовков запросов. Мне нужно обновить существующие заголовки или добавить новые на основе результатов проверки. Ниже приведена логика лямбда-авторизатора в Java, проверка работоспособности, как и ожидалось. Независимо от обновления значений заголовка, объект события, полученный в лямбда-бэкэнде, пуст.
@Override
public AuthPolicy handleRequest(APIGatewayProxyRequestEvent event, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("Loading Java Lambda handler of Proxy");
logger.log("Event Object : " + event.toString());
Pattern requestIdpattern = Pattern.compile("[0-9a-f]{4}-[0-9A-Z]{3}");
ProxyRequestContext reqContext = event.getRequestContext();
boolean isValid = false;
Map<String, String> headers = event.getHeaders();
if (requestIdpattern.matcher(headers.get("x-request-id")).matches()) {
isValid = true;
headers.put("x-jid", UUID.randomUUID().toString());
}
if (isValid) {
AuthPolicy authPolicy = new AuthPolicy("XXXX",
PolicyDocument.getAllowPolicy("us-east-1", reqContext.getAccountId(), reqContext.getApiId(),
reqContext.getStage(), HttpMethod.getHttpMethod(reqContext.getHttpMethod()),
reqContext.getResourcePath()));
return authPolicy;
} else {
AuthPolicy authPolicy = new AuthPolicy("XXXXXX",
PolicyDocument.getDenyPolicy("us-east-1", reqContext.getAccountId(), reqContext.getApiId(),
reqContext.getStage(), HttpMethod.getHttpMethod(reqContext.getHttpMethod()),
reqContext.getResourcePath()));
logger.log("Auth Policy Response Object : " + authPolicy.toString());
return authPolicy;
}
}
Не могли бы вы дать мне знать, как настроить авторизатор таким образом, чтобы после успешной авторизации входной запрос к запросу шлюза API отправлялся службе интеграции.