AWS Заголовки запроса авторизатора пусты - PullRequest
1 голос
/ 06 января 2020

После создания нового Авторизатора с привязкой к заголовку авторизации - enter image description here

Я попытался протестировать его с некоторым токеном -

enter image description here

Но я не получаю никакого заголовка при попытке напечатать весь заголовок запроса -

Map<String, String> headers = request.getHeaders();
        Map<String, List<String>> multiValueHeaders = request.getMultiValueHeaders();
        if(headers != null) {
            for (Map.Entry<String,String> entry : headers.entrySet()) {
                context.getLogger().log("headers Key = " + entry.getKey() + 
                        ",headers Value = " + entry.getValue());
            }
        }

        if(multiValueHeaders != null) {
            for (Entry<String, List<String>> entry : multiValueHeaders.entrySet()) {
                context.getLogger().log("multiValueHeaders Key = " + entry.getKey()); 
                List<String> headersList =(List<String>) entry.getValue();
                headersList.forEach((temp) -> {
                    context.getLogger().log("Header-multiValueHeaders" + temp);
                });
            }
        }

Я ожидаю, что заголовок авторизации будет частью запроса, или я получаю некоторые что-то не так.

При проверке журналов CloudWatch заголовки всегда равны нулю.

Весь код -

public class Authorizer implements RequestHandler<APIGatewayProxyRequestEvent, AuthorizerResponse> {

    private static FilterHandlers handler = new FilterHandlers();

    public AuthorizerResponse handleRequest(APIGatewayProxyRequestEvent request, Context context) {
        String authorization = "";

        Map<String, String> headers = request.getHeaders();
        Map<String, List<String>> multiValueHeaders = request.getMultiValueHeaders();
        if(headers != null) {
            for (Map.Entry<String,String> entry : headers.entrySet()) {
                context.getLogger().log("headers Key = " + entry.getKey() + 
                        ",headers Value = " + entry.getValue());
            }
        }

        if(multiValueHeaders != null) {
            for (Entry<String, List<String>> entry : multiValueHeaders.entrySet()) {
                context.getLogger().log("multiValueHeaders Key = " + entry.getKey()); 
                List<String> headersList =(List<String>) entry.getValue();
                headersList.forEach((temp) -> {
                    context.getLogger().log("Header-multiValueHeaders" + temp);
                });
            }
        }



        context.getLogger().log("authorization: " + authorization);
        //send the Authorization header to othe http service 
        boolean doJwtAuthCheck = handler.doJwtAuthCheck(authorization);

        Map<String, String> ctx = new HashMap<>();
        //ctx.put("username", JwtUtils.extractUserName(jwt));

        APIGatewayProxyRequestEvent.ProxyRequestContext proxyContext = request.getRequestContext();
        APIGatewayProxyRequestEvent.RequestIdentity identity = proxyContext.getIdentity();

        String arn = String.format("arn:aws:execute-api:eu-west-1:%s:%s/%s/%s/%s",
                proxyContext.getAccountId(),
                proxyContext.getApiId(),
                proxyContext.getStage(),
                proxyContext.getHttpMethod(),
                "*");
        context.getLogger().log("arn: " + arn);
        Statement statement = null;
        //if service returned 200 
        if(doJwtAuthCheck) {
            statement = Statement.builder()
            .resource(arn).effect("Allow")
            .build();
        //if service returned 401
        }else {
            statement = Statement.builder()
                    .resource(arn).effect("Deny")
                    .build();
        }

        context.getLogger().log("statment: " + statement.Effect);
        PolicyDocument policyDocument = PolicyDocument.builder()
                .statements(
                        Collections.singletonList(statement)
                ).build();



        return AuthorizerResponse.builder()
                .principalId(identity.getAccountId())
                .policyDocument(policyDocument)
                .context(ctx)
                .build();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...