如何从AWS Lambda Authorizer返回401“未经授权”

问题描述

我们正在使用带有API Gateway的AWS Lambda Authorizer来保护我们的下游API。

下面是我们基于Java的lambda授权程序的代码

Statement statement = Statement.builder()
            .resource(input.getmethodArn()).effect(effect)
            .build();

    PolicyDocument policyDocument = PolicyDocument.builder()
            .statements(
                    Collections.singletonList(statement)
            ).build();

    return AuthorizerResponse.builder()
            .principalId(userId)
            .policyDocument(policyDocument)
            .context(ctx)
            .build();
  1. 使用正确的令牌(效果=“允许”):从API获得正确的API响应

  2. 使用不正确的令牌(effect =“ Deny”)获得403 HTTP响应代码

我们需要401(“未授权”)作为响应,有人可以帮助您执行此操作吗?我们有用Java编写的Lambda授权者。

解决方法

尝试抛出带有“未授权”消息的异常。