0

我是学习 AWS Lambda 的新手,想用 Java 实现 API 网关的授权器。请求类型授权者的方法头是什么?这是我到目前为止所拥有的:

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"));

}

}

我正在返回 AWS-labs 示例中给出的 AuthPolicy 对象:
https ://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/blob/master/blueprints/java/src/example/APIGatewayAuthorizerHandler.java

上面的结构是token类型的,我需要request类型。我收到此错误:由于配置错误
,解析前授权方结果正文
执行失败:响应中的 JSON 无效:

请帮忙。

4

1 回答 1

0

在将有效的 JSON 响应返回给 API 网关时,我遇到了类似的问题。我认为您使用输入/输出流是正确的,因为 AWS lambda JSON 序列化程序可能会与返回的任何 JSON 混淆(更改策略属性的大小写)。请参阅此处理程序输入/输出类型 (Java)(在文档末尾)

查看您的代码,您似乎需要将响应流式传输回 outputStream 而不是返回 POJO?

您可能已经对此进行了排序,但将其放在那里供其他人使用。

于 2019-03-06T09:47:36.150 回答