首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从AWS Lambda授权器返回401 (“未经授权”)

如何从AWS Lambda授权器返回401 (“未经授权”)
EN

Stack Overflow用户
提问于 2020-09-21 10:50:38
回答 2查看 926关注 0票数 2

我们使用AWS Lambda授权器和API网关来保护我们的下游API。

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

代码语言:javascript
复制
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. (effect =“
  2. ”):从API

获得正确的API响应

带有不正确令牌的

  1. (effect = "Deny")获取403个HTTP响应代码.

我们需要401 (“未经授权”)作为回应,有人能帮助如何做到这一点吗?我们有用java编写的lambda授权程序。

EN

回答 2

Stack Overflow用户

发布于 2021-10-01 06:03:10

您可以向RuntimeException抛出未经授权的消息。有一件事是要记住的,你不能抛出异常之类的检查异常(“未经授权”)。因为RequestHandler接口的handleRequest方法签名不允许这样做。

代码语言:javascript
复制
if(isInvalidToken){
  throw new RuntimeException("Unauthorized");
}
票数 1
EN

Stack Overflow用户

发布于 2020-12-23 00:24:25

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63990790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档