From 9c921430cc55c1eb965bfd7a7d228a43d7b0fb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikko=20Haapam=C3=A4ki?= Date: Wed, 22 Jun 2022 12:06:50 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20Korjaa=20ilmoitustaulusy=C3=B6tteen=20tu?= =?UTF-8?q?nnistautuminen=20(#283)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deployment/lib/hassu-frontend.ts | 15 +++++++++++++-- package.json | 2 ++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/deployment/lib/hassu-frontend.ts b/deployment/lib/hassu-frontend.ts index ee6dd4776..b6be8fa1d 100644 --- a/deployment/lib/hassu-frontend.ts +++ b/deployment/lib/hassu-frontend.ts @@ -13,7 +13,7 @@ import { OriginRequestPolicy, OriginSslPolicy, PriceClass, - ViewerProtocolPolicy + ViewerProtocolPolicy, } from "@aws-cdk/aws-cloudfront"; import { Config } from "./config"; import { HttpOrigin } from "@aws-cdk/aws-cloudfront-origins/lib/http-origin"; @@ -28,7 +28,7 @@ import { PolicyDocument, PolicyStatement, Role, - ServicePrincipal + ServicePrincipal, } from "@aws-cdk/aws-iam"; import * as fs from "fs"; import { EdgeFunction } from "@aws-cdk/aws-cloudfront/lib/experimental"; @@ -152,6 +152,7 @@ export class HassuFrontendStack extends cdk.Stack { invalidationPaths: ["/*"], }); this.configureNextJSAWSPermissions(nextJSLambdaEdge); + HassuFrontendStack.configureNextJSRequestHeaders(nextJSLambdaEdge); const distribution: cloudfront.Distribution = nextJSLambdaEdge.distribution; new cdk.CfnOutput(this, "CloudfrontPrivateDNSName", { @@ -176,6 +177,16 @@ export class HassuFrontendStack extends cdk.Stack { this.props.internalBucket.grantReadWrite(nextJSLambdaEdge.edgeLambdaRole); } + private static configureNextJSRequestHeaders(nextJSLambdaEdge: NextJSLambdaEdge) { + // Enable forwarding the headers to the nextjs API lambda to get the authorization header + const additionalBehaviors = (nextJSLambdaEdge.distribution as any).additionalBehaviors; + for (const additionalBehavior of additionalBehaviors) { + if (additionalBehavior.props.pathPattern == "api/*") { + additionalBehavior.props.originRequestPolicy = OriginRequestPolicy.ALL_VIEWER; + } + } + } + private createFrontendRequestFunction( env: string, basicAuthenticationUsername: string, diff --git a/package.json b/package.json index 6367a0c90..8a0683f60 100644 --- a/package.json +++ b/package.json @@ -228,6 +228,8 @@ "log:dynamodb-stream-handler": "aws logs tail --follow --since 1h /aws/lambda/hassu-dynamodb-stream-handler-$ENVIRONMENT", "log:dynamodb-stream-handler:dev": "aws logs tail --follow --since 1h /aws/lambda/hassu-dynamodb-stream-handler-dev", "log:email": "aws logs tail --follow --since 1h /aws/lambda/hassu-email-$ENVIRONMENT", + "log:frontend:nextjsapi": "cross-env AWS_REGION=eu-central-1 aws logs tail --follow --since 1h /aws/lambda/us-east-1.NextJsApp-${ENVIRONMENT}ApiV2", + "log:frontend:nextjsapi:dev": "cross-env AWS_REGION=eu-central-1 aws logs tail --follow --since 1h /aws/lambda/us-east-1.NextJsApp-devApiV2", "sonar": "node -r dotenv/config ./deployment/bin/sonar.js dotenv_config_path=.env.local", "opensearch:getmapping": "cross-env DOTENV_CONFIG_PATH=.env.test ts-node --project=backend/tsconfig.json -r dotenv/config ./deployment/bin/opensearch.ts getmapping projekti backend/src/projektiSearch/projekti-mapping.json", "opensearch:getsettings": "cross-env DOTENV_CONFIG_PATH=.env.test ts-node --project=backend/tsconfig.json -r dotenv/config ./deployment/bin/opensearch.ts getsettings projekti backend/src/projektiSearch/projekti-settings.json",