Skip to content

Commit 8dbca12

Browse files
feat: added AllViewerExceptHostHeader as new OriginRequest policy (#24562)
Added the managed AllViewerExceptHostHeader policy as it was missing Closes #24552. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent 6e400a9 commit 8dbca12

File tree

9 files changed

+117
-9
lines changed

9 files changed

+117
-9
lines changed

packages/@aws-cdk/aws-cloudfront/lib/origin-request-policy.ts

+2
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ export class OriginRequestPolicy extends Resource implements IOriginRequestPolic
6868
public static readonly ELEMENTAL_MEDIA_TAILOR = OriginRequestPolicy.fromManagedOriginRequestPolicy('775133bc-15f2-49f9-abea-afb2e0bf67d2');
6969
/** This policy includes all values (headers, cookies, and query strings) in the viewer request, and all CloudFront headers that were released through June 2022 (CloudFront headers released after June 2022 are not included). */
7070
public static readonly ALL_VIEWER_AND_CLOUDFRONT_2022 = OriginRequestPolicy.fromManagedOriginRequestPolicy('33f36d7e-f396-46d9-90e0-52428a34d9dc');
71+
/** This policy includes all values (query strings, and cookies) except the header in the viewer request. */
72+
public static readonly ALL_VIEWER_EXCEPT_HOST_HEADER = OriginRequestPolicy.fromManagedOriginRequestPolicy('b689b0a8-53d0-40ab-baf2-68738e2966ac');
7173

7274
/** Imports a Origin Request Policy from its id. */
7375
public static fromOriginRequestPolicyId(scope: Construct, id: string, originRequestPolicyId: string): IOriginRequestPolicy {
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"22.0.0"}
1+
{"version":"31.0.0"}

packages/@aws-cdk/aws-cloudfront/test/integ.distribution-policies.js.snapshot/integ-distribution-policies.assets.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
2-
"version": "22.0.0",
2+
"version": "31.0.0",
33
"files": {
4-
"85cdf1d3cb389bbffb86daea3e968294cc2b3ab0ca95c300db0a6b907bed5589": {
4+
"b775626104dd72b1b3fc9a1fb6e652212a0a0aa05be2d07ce372eaf29589c146": {
55
"source": {
66
"path": "integ-distribution-policies.template.json",
77
"packaging": "file"
88
},
99
"destinations": {
1010
"current_account-current_region": {
1111
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
12-
"objectKey": "85cdf1d3cb389bbffb86daea3e968294cc2b3ab0ca95c300db0a6b907bed5589.json",
12+
"objectKey": "b775626104dd72b1b3fc9a1fb6e652212a0a0aa05be2d07ce372eaf29589c146.json",
1313
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
1414
}
1515
}

packages/@aws-cdk/aws-cloudfront/test/integ.distribution-policies.js.snapshot/integ-distribution-policies.template.json

+31
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,37 @@
123123
]
124124
}
125125
}
126+
},
127+
"Dist24014FEC1": {
128+
"Type": "AWS::CloudFront::Distribution",
129+
"Properties": {
130+
"DistributionConfig": {
131+
"DefaultCacheBehavior": {
132+
"CachePolicyId": {
133+
"Ref": "CachePolicy26D8A535"
134+
},
135+
"Compress": true,
136+
"OriginRequestPolicyId": "b689b0a8-53d0-40ab-baf2-68738e2966ac",
137+
"ResponseHeadersPolicyId": {
138+
"Ref": "ResponseHeadersPolicy13DBF9E0"
139+
},
140+
"TargetOriginId": "integdistributionpoliciesDist2Origin16AFA66C6",
141+
"ViewerProtocolPolicy": "allow-all"
142+
},
143+
"Enabled": true,
144+
"HttpVersion": "http2",
145+
"IPV6Enabled": true,
146+
"Origins": [
147+
{
148+
"CustomOriginConfig": {
149+
"OriginProtocolPolicy": "https-only"
150+
},
151+
"DomainName": "www.example-2.com",
152+
"Id": "integdistributionpoliciesDist2Origin16AFA66C6"
153+
}
154+
]
155+
}
156+
}
126157
}
127158
},
128159
"Parameters": {

packages/@aws-cdk/aws-cloudfront/test/integ.distribution-policies.js.snapshot/integ.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "22.0.0",
2+
"version": "31.0.0",
33
"testCases": {
44
"integ.distribution-policies": {
55
"stacks": [

packages/@aws-cdk/aws-cloudfront/test/integ.distribution-policies.js.snapshot/manifest.json

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "22.0.0",
2+
"version": "31.0.0",
33
"artifacts": {
44
"integ-distribution-policies.assets": {
55
"type": "cdk:asset-manifest",
@@ -17,7 +17,7 @@
1717
"validateOnSynth": false,
1818
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
1919
"cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
20-
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/85cdf1d3cb389bbffb86daea3e968294cc2b3ab0ca95c300db0a6b907bed5589.json",
20+
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b775626104dd72b1b3fc9a1fb6e652212a0a0aa05be2d07ce372eaf29589c146.json",
2121
"requiresBootstrapStackVersion": 6,
2222
"bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
2323
"additionalDependencies": [
@@ -57,6 +57,12 @@
5757
"data": "DistB3B78991"
5858
}
5959
],
60+
"/integ-distribution-policies/Dist-2/Resource": [
61+
{
62+
"type": "aws:cdk:logicalId",
63+
"data": "Dist24014FEC1"
64+
}
65+
],
6066
"/integ-distribution-policies/BootstrapVersion": [
6167
{
6268
"type": "aws:cdk:logicalId",

packages/@aws-cdk/aws-cloudfront/test/integ.distribution-policies.js.snapshot/tree.json

+60-2
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
"path": "integ-distribution-policies/Dist/Origin1",
163163
"constructInfo": {
164164
"fqn": "constructs.Construct",
165-
"version": "10.1.189"
165+
"version": "10.1.270"
166166
}
167167
},
168168
"Resource": {
@@ -213,6 +213,64 @@
213213
"version": "0.0.0"
214214
}
215215
},
216+
"Dist-2": {
217+
"id": "Dist-2",
218+
"path": "integ-distribution-policies/Dist-2",
219+
"children": {
220+
"Origin1": {
221+
"id": "Origin1",
222+
"path": "integ-distribution-policies/Dist-2/Origin1",
223+
"constructInfo": {
224+
"fqn": "constructs.Construct",
225+
"version": "10.1.270"
226+
}
227+
},
228+
"Resource": {
229+
"id": "Resource",
230+
"path": "integ-distribution-policies/Dist-2/Resource",
231+
"attributes": {
232+
"aws:cdk:cloudformation:type": "AWS::CloudFront::Distribution",
233+
"aws:cdk:cloudformation:props": {
234+
"distributionConfig": {
235+
"enabled": true,
236+
"origins": [
237+
{
238+
"domainName": "www.example-2.com",
239+
"id": "integdistributionpoliciesDist2Origin16AFA66C6",
240+
"customOriginConfig": {
241+
"originProtocolPolicy": "https-only"
242+
}
243+
}
244+
],
245+
"defaultCacheBehavior": {
246+
"pathPattern": "*",
247+
"targetOriginId": "integdistributionpoliciesDist2Origin16AFA66C6",
248+
"cachePolicyId": {
249+
"Ref": "CachePolicy26D8A535"
250+
},
251+
"compress": true,
252+
"originRequestPolicyId": "b689b0a8-53d0-40ab-baf2-68738e2966ac",
253+
"responseHeadersPolicyId": {
254+
"Ref": "ResponseHeadersPolicy13DBF9E0"
255+
},
256+
"viewerProtocolPolicy": "allow-all"
257+
},
258+
"httpVersion": "http2",
259+
"ipv6Enabled": true
260+
}
261+
}
262+
},
263+
"constructInfo": {
264+
"fqn": "@aws-cdk/aws-cloudfront.CfnDistribution",
265+
"version": "0.0.0"
266+
}
267+
}
268+
},
269+
"constructInfo": {
270+
"fqn": "@aws-cdk/aws-cloudfront.Distribution",
271+
"version": "0.0.0"
272+
}
273+
},
216274
"BootstrapVersion": {
217275
"id": "BootstrapVersion",
218276
"path": "integ-distribution-policies/BootstrapVersion",
@@ -240,7 +298,7 @@
240298
"path": "Tree",
241299
"constructInfo": {
242300
"fqn": "constructs.Construct",
243-
"version": "10.1.189"
301+
"version": "10.1.270"
244302
}
245303
}
246304
},

packages/@aws-cdk/aws-cloudfront/test/integ.distribution-policies.ts

+10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as cdk from '@aws-cdk/core';
22
import { TestOrigin } from './test-origin';
33
import * as cloudfront from '../lib';
4+
import { OriginRequestPolicy } from '../lib';
45

56
const app = new cdk.App();
67
const stack = new cdk.Stack(app, 'integ-distribution-policies');
@@ -38,4 +39,13 @@ new cloudfront.Distribution(stack, 'Dist', {
3839
},
3940
});
4041

42+
new cloudfront.Distribution(stack, 'Dist-2', {
43+
defaultBehavior: {
44+
origin: new TestOrigin('www.example-2.com'),
45+
cachePolicy,
46+
originRequestPolicy: OriginRequestPolicy.ALL_VIEWER_EXCEPT_HOST_HEADER,
47+
responseHeadersPolicy,
48+
},
49+
});
50+
4151
app.synth();

packages/@aws-cdk/aws-cloudfront/test/origin-request-policy.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ test('managed policies are provided', () => {
109109
expect(OriginRequestPolicy.ALL_VIEWER.originRequestPolicyId).toEqual('216adef6-5c7f-47e4-b989-5492eafa07d3');
110110
expect(OriginRequestPolicy.ELEMENTAL_MEDIA_TAILOR.originRequestPolicyId).toEqual('775133bc-15f2-49f9-abea-afb2e0bf67d2');
111111
expect(OriginRequestPolicy.ALL_VIEWER_AND_CLOUDFRONT_2022.originRequestPolicyId).toEqual('33f36d7e-f396-46d9-90e0-52428a34d9dc');
112+
expect(OriginRequestPolicy.ALL_VIEWER_EXCEPT_HOST_HEADER.originRequestPolicyId).toEqual('b689b0a8-53d0-40ab-baf2-68738e2966ac');
112113
});
113114

114115
// OriginRequestCookieBehavior and OriginRequestQueryStringBehavior have identical behavior

0 commit comments

Comments
 (0)