Тип запроса Java AWS Lambda Authorizer - PullRequest
0 голосов
/ 14 декабря 2018

Я новичок в изучении 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

Приведенная выше структура предназначена для типа токена,и мне нужен тип запроса.Я получаю эту ошибку:
Тело результата Authorizer перед синтаксическим анализом
Выполнение не выполнено из-за ошибки конфигурации: неверный JSON в ответе:

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 06 марта 2019

У меня были похожие проблемы с получением верного ответа JSON на шлюз API.Я думаю, что вы на правильном пути, используя потоки ввода / вывода, поскольку лямбда-сериализатор JSON AWS ​​может связываться с любым возвращенным JSON (изменяя регистр свойств политики).Смотрите это Типы ввода / вывода обработчика (Java) (в конце документа)

Глядя на ваш код, вы видите, что вам нужно передавать ответ обратно в outputStream, а не возвращатьPOJO?

Вы, наверное, уже разобрали это, но разместили это там для других.

...