Тип запроса Java AWS Lambda Authorizer
Я новичок в изучении AWS Lambda и хочу реализовать Authorizer для API-шлюза в Java. Что такое заголовок метода для авторизаторов типа запроса? Это то, что я до сих пор:
public class Authorize implements RequestHandler<Object, AuthPolicy> {
public AuthPolicy handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
//Logic for Authorizer
return new AuthPolicy("xxxx", AuthPolicy.PolicyDocument.getAllowAllPolicy(System.getenv("AWS_REGION"), context.getIdentity().getIdentityId(), "GET", "1"));
}
}
Я возвращаю объект AuthPolicy, как показано в примере AWS-labs:
https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/blob/master/blueprints/java/src/example/APIGatewayAuthorizerHandler.java
Приведенная выше структура предназначена для типа токена, и мне нужен тип запроса. Я получаю эту ошибку:
Тело результата авторизатора перед разбором
Выполнение не выполнено из-за ошибки конфигурации: неверный JSON в ответе:
Пожалуйста помоги.
0 ответов
У меня были похожие проблемы с получением верного ответа JSON обратно к шлюзу API. Я думаю, что вы на правильном пути, используя потоки ввода / вывода, поскольку лямбда-сериализатор JSON AWS может связываться с любым возвращенным JSON (изменяя регистр свойств политики). Смотрите этот Тип ввода / вывода обработчика (Java) (в конце документа)
Глядя на ваш код, кажется, что вам нужно передавать ответ обратно в outputStream, а не возвращать POJO?
Вы, наверное, уже разобрали это, но разместили это там для других.