@sylvesterllc/aws-constructs 1.0.65 → 1.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources/gateway/CreateApiAndAttachLambdas.d.ts +1 -1
- package/dist/resources/gateway/CreateApiAndAttachLambdas.js +6 -6
- package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.d.ts +3 -1
- package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.js +7 -3
- package/dist/resources/lambda-authorizer/createAuthorizerHelpers.d.ts +2 -1
- package/dist/resources/lambda-authorizer/createAuthorizerHelpers.js +9 -4
- package/package.json +1 -1
- package/src/resources/gateway/CreateApiAndAttachLambdas.ts +5 -5
- package/src/resources/lambda-authorizer/TsgRequestAuthorizer.ts +7 -2
- package/src/resources/lambda-authorizer/createAuthorizerHelpers.ts +11 -3
|
@@ -11,7 +11,7 @@ export declare class CreateApiAndAttachLambdas extends BaseResource<ApiLambdaRes
|
|
|
11
11
|
private layers?;
|
|
12
12
|
private tables?;
|
|
13
13
|
protected requireAuthorizer: boolean;
|
|
14
|
-
protected
|
|
14
|
+
protected authorizerType?: TsgAuthorizerType;
|
|
15
15
|
constructor(scope: Construct, config: AppConfig, gatewayApi: IRestApi, layers?: LayerVersion[] | undefined, tables?: ITable[] | undefined);
|
|
16
16
|
protected createResource(scope: Construct): ApiLambdaResult[] | null;
|
|
17
17
|
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
@@ -13,7 +13,7 @@ class CreateApiAndAttachLambdas extends baseResource_1.BaseResource {
|
|
|
13
13
|
layers;
|
|
14
14
|
tables;
|
|
15
15
|
requireAuthorizer;
|
|
16
|
-
|
|
16
|
+
authorizerType;
|
|
17
17
|
constructor(scope, config, gatewayApi, layers, tables) {
|
|
18
18
|
super(scope, config);
|
|
19
19
|
this.gatewayApi = gatewayApi;
|
|
@@ -23,7 +23,7 @@ class CreateApiAndAttachLambdas extends baseResource_1.BaseResource {
|
|
|
23
23
|
this.requireAuthorizer = (this.config.RESOURCES.AUTHORIZER &&
|
|
24
24
|
this.config.RESOURCES.AUTHORIZER.type) ? true : false;
|
|
25
25
|
if (this.requireAuthorizer) {
|
|
26
|
-
this.
|
|
26
|
+
this.authorizerType = this.config.RESOURCES.AUTHORIZER?.type;
|
|
27
27
|
}
|
|
28
28
|
else if (this.config.RESOURCES.AUTHORIZER && !this.config.RESOURCES.AUTHORIZER.type) {
|
|
29
29
|
throw new Error(`You must provide an authorizer type if a Authorizer is required`);
|
|
@@ -59,14 +59,14 @@ class CreateApiAndAttachLambdas extends baseResource_1.BaseResource {
|
|
|
59
59
|
}
|
|
60
60
|
createAuthorizer() {
|
|
61
61
|
let authorizer = undefined;
|
|
62
|
-
if (this.requireAuthorizer && this.
|
|
62
|
+
if (this.requireAuthorizer && this.authorizerType === TsgAuthorizerType_1.TsgAuthorizerType.TOKEN_AUTHORIZER) {
|
|
63
63
|
authorizer = new TsgJwtTokenAuthorizer_1.TsgJwtTokenAuthorizer(this.scope, this.config).JwtAuthorizer;
|
|
64
64
|
authorizer?._attachToApi(this.gatewayApi);
|
|
65
65
|
authorizer?.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
66
66
|
return authorizer;
|
|
67
67
|
}
|
|
68
|
-
else if (this.requireAuthorizer && this.
|
|
69
|
-
authorizer = new TsgRequestAuthorizer_1.TsgRequestAuthorizer(this.scope, this.config).RequestAuthorizer;
|
|
68
|
+
else if (this.requireAuthorizer && this.authorizerType === TsgAuthorizerType_1.TsgAuthorizerType.REQUEST_AUTHORIZER) {
|
|
69
|
+
authorizer = new TsgRequestAuthorizer_1.TsgRequestAuthorizer(this.scope, this.config, this.layers, this.tables).RequestAuthorizer;
|
|
70
70
|
authorizer?._attachToApi(this.gatewayApi);
|
|
71
71
|
authorizer?.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
72
72
|
return authorizer;
|
|
@@ -97,4 +97,4 @@ class CreateApiAndAttachLambdas extends baseResource_1.BaseResource {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
exports.CreateApiAndAttachLambdas = CreateApiAndAttachLambdas;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlQXBpQW5kQXR0YWNoTGFtYmRhcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvZ2F0ZXdheS9DcmVhdGVBcGlBbmRBdHRhY2hMYW1iZGFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVEQUFvRDtBQUlwRCw0RUFBeUU7QUFFekUsc0ZBQW1GO0FBQ25GLDZDQUF1RDtBQUN2RCxvRkFBaUY7QUFDakYseURBQXNEO0FBS3RELDBEQUFpRDtBQUVqRCxNQUFhLHlCQUEwQixTQUFRLDJCQUE2QjtJQU81RDtJQUNBO0lBQ0E7SUFQRixpQkFBaUIsQ0FBVTtJQUMzQixVQUFVLENBQXFCO0lBRXpDLFlBQVksS0FBZ0IsRUFDeEIsTUFBaUIsRUFDVCxVQUFvQixFQUNwQixNQUF1QixFQUN2QixNQUFpQjtRQUN6QixLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBSGIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBR3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztTQUM1RDthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFB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QUFPLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUU7Z0JBRXZDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtvQkFFN0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVyQyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQWlCLEVBQy9CLE9BQWlCLEVBQ2pCLE9BQXlCLEVBQ3pCLFVBQThDO1FBRTlDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUVyRCxNQUFNLFFBQVEsR0FBRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBRTdELElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQscUJBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUEzSEQsOERBMkhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEJhc2VSZXNvdXJjZSB9IGZyb20gXCIuLi9iYXNlL2Jhc2VSZXNvdXJjZVwiO1xuaW1wb3J0IHsgSVRhYmxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IEFwaUxhbWJkYVJlc3VsdCB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0FwaUxhbWJkYVJlc3VsdFwiO1xuaW1wb3J0IHsgVHNnQXV0aG9yaXplclR5cGUgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0F1dGhvcml6ZXJUeXBlXCI7XG5pbXBvcnQgeyBJUmVzdEFwaSwgUmVxdWVzdEF1dGhvcml6ZXIsIFRva2VuQXV0aG9yaXplciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHsgVHNnSnd0VG9rZW5BdXRob3JpemVyIH0gZnJvbSBcIi4uL2xhbWJkYS1hdXRob3JpemVyL1RzZ0p3dFRva2VuQXV0aG9yaXplclwiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBUc2dSZXF1ZXN0QXV0aG9yaXplciB9IGZyb20gXCIuLi9sYW1iZGEtYXV0aG9yaXplci9Uc2dSZXF1ZXN0QXV0aG9yaXplclwiO1xuaW1wb3J0IHsgQ3JlYXRlTGFtYmRhIH0gZnJvbSBcIi4uL2xhbWJkYS9jcmVhdGVMYW1iZGFcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlcy9Uc2dMYW1iZGFQcm9wc1wiO1xuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBUc2dMYW1iZGFQcm9wIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlc1wiO1xuaW1wb3J0IHsgUm91dGVzIH0gZnJvbSBcIi4uL2hlbHBlcnMvY3JlYXRlUm91dGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVBcGlBbmRBdHRhY2hMYW1iZGFzIGV4dGVuZHMgQmFzZVJlc291cmNlPEFwaUxhbWJkYVJlc3VsdD4ge1xuICAgIFxuICAgIHByb3RlY3RlZCByZXF1aXJlQXV0aG9yaXplcjogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgYXV0aG9yaXplcj86IFRzZ0F1dGhvcml6ZXJUeXBlO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCxcbiAgICAgICAgY29uZmlnOiBBcHBDb25maWcsXG4gICAgICAgIHByaXZhdGUgZ2F0ZXdheUFwaTogSVJlc3RBcGksXG4gICAgICAgIHByaXZhdGUgbGF5ZXJzPzogTGF5ZXJWZXJzaW9uW10sXG4gICAgICAgIHByaXZhdGUgdGFibGVzPzogSVRhYmxlW10pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGNvbmZpZyk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJyMjIyBDcmVhdGVBcGlBbmRBdHRhY2hMYW1iZGFzICMjIyBDb25zdHJ1Y3RvciAjIyM6ICcsIGNvbmZpZyk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnJlcXVpcmVBdXRob3JpemVyID0gKHRoaXMuY29uZmlnLlJFU09VUkNFUy5BVVRIT1JJWkVSICYmIFxuICAgICAgICAgICAgdGhpcy5jb25maWcuUkVTT1VSQ0VTLkFVVEhPUklaRVIudHlwZSkgPyB0cnVlIDogZmFsc2U7ICAgICAgIFxuXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVBdXRob3JpemVyKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZXIgPSB0aGlzLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUj8udHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUiAmJiAhdGhpcy5jb25maWcuUkVTT1VSQ0VTLkFVVEhPUklaRVIudHlwZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbXVzdCBwcm92aWRlIGFuIGF1dGhvcml6ZXIgdHlwZSBpZiBhIEF1dGhvcml6ZXIgaXMgcmVxdWlyZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCk6IEFwaUxhbWJkYVJlc3VsdFtdIHwgbnVsbCB7XG5cbiAgICAgICAgbGV0IGF1dGhvcml6ZXI6IFRva2VuQXV0aG9yaXplciB8IFJlcXVlc3RBdXRob3JpemVyIHwgdW5kZWZpbmVkIHwgbnVsbCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBDcmVhdGUgQXV0aG9yaXplclxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplcikge1xuICAgICAgICAgICAgYXV0aG9yaXplciA9IHRoaXMuY3JlYXRlQXV0aG9yaXplcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIExhbWJkYXNcbiAgICAgICAgY29uc3QgbGFtYmRhcyA9IG5ldyBDcmVhdGVMYW1iZGEodGhpcy5zY29wZSwgdGhpcy5jb25maWcsIHRoaXMubGF5ZXJzKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEdpdmUgQWNjZXNzIHRvIExhbWJkZHMgdG8gQWxsIER5bmFtb0RiIFRhYmxlc1xuICAgICAgICBpZiAodGhpcy50YWJsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduQWNjZXNzVG9UYWJsZXModGhpcy50YWJsZXMsIGxhbWJkYXMuTGFtYmRhcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgUm91dGVzIG9uIEFQSSBHYXRld2F5IGZvciBMYW1iZGFzIGZyb20gY29uZmlnXG4gICAgICAgIHRoaXMuQWRkUm91dGVzKHRoaXMuY29uZmlnLCB0aGlzLmdhdGV3YXlBcGksIGxhbWJkYXMuTGFtYmRhcywgYXV0aG9yaXplciB8fCB1bmRlZmluZWQpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogQXBpTGFtYmRhUmVzdWx0ID0ge1xuICAgICAgICAgICAgYXBpOiB0aGlzLmdhdGV3YXlBcGksXG4gICAgICAgICAgICBhdXRob3JpemVyOiBhdXRob3JpemVyXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBbcmVzdWx0XTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5jcmVhdGVkUmVzb3VyY2VzIS5mb3JFYWNoKCh4LCBpZHgpID0+IHtcbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBBdXRob3JpemVyci0ke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHguYXV0aG9yaXplcj8uYXV0aG9yaXplckFybiFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9ICAgIFxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBdXRob3JpemVyKCkge1xuXG4gICAgICAgIGxldCBhdXRob3JpemVyOiBUb2tlbkF1dGhvcml6ZXIgfCBSZXF1ZXN0QXV0aG9yaXplciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplciAmJiB0aGlzLmF1dGhvcml6ZXIgPT09IFRzZ0F1dGhvcml6ZXJUeXBlLlRPS0VOX0FVVEhPUklaRVIpIHtcblxuICAgICAgICAgICAgYXV0aG9yaXplciA9IG5ldyBUc2dKd3RUb2tlbkF1dGhvcml6ZXIodGhpcy5zY29wZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZykuSnd0QXV0aG9yaXplcjtcblxuICAgICAgICAgICAgYXV0aG9yaXplcj8uX2F0dGFjaFRvQXBpKHRoaXMuZ2F0ZXdheUFwaSk7XG4gICAgICAgICAgICBhdXRob3JpemVyPy5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgICAgICAgICAgcmV0dXJuIGF1dGhvcml6ZXI7XG5cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJlcXVpcmVBdXRob3JpemVyICYmIHRoaXMuYXV0aG9yaXplciA9PT0gVHNnQXV0aG9yaXplclR5cGUuUkVRVUVTVF9BVVRIT1JJWkVSKSB7XG4gICAgICAgICAgICBhdXRob3JpemVyID0gbmV3IFRzZ1JlcXVlc3RBdXRob3JpemVyKHRoaXMuc2NvcGUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcpLlJlcXVlc3RBdXRob3JpemVyIGFzIFJlcXVlc3RBdXRob3JpemVyO1xuXG4gICAgICAgICAgICBhdXRob3JpemVyPy5fYXR0YWNoVG9BcGkodGhpcy5nYXRld2F5QXBpKTtcbiAgICAgICAgICAgIGF1dGhvcml6ZXI/LmFwcGx5UmVtb3ZhbFBvbGljeShSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuXG4gICAgICAgICAgICByZXR1cm4gYXV0aG9yaXplcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzc2lnbkFjY2Vzc1RvVGFibGVzKHRhYmxlczogSVRhYmxlW10sIGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHtcblxuICAgICAgICBpZiAodGFibGVzKSB7XG4gICAgICAgICAgICBsYW1iZGFzLmZvckVhY2goKGxhbWJkYTogTm9kZWpzRnVuY3Rpb24pID0+IHtcblxuICAgICAgICAgICAgICAgIHRhYmxlcy5mb3JFYWNoKCh0YWJsZTogSVRhYmxlKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGxhbWJkYSk7XG5cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBBZGRSb3V0ZXMoY29uZmlnOiBBcHBDb25maWcsXG4gICAgICAgIGdhdGV3YXk6IElSZXN0QXBpLFxuICAgICAgICBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdLFxuICAgICAgICBhdXRob3JpemVyPzogVG9rZW5BdXRob3JpemVyfFJlcXVlc3RBdXRob3JpemVyKSB7XG5cbiAgICAgICAgY29uZmlnLlJFU09VUkNFUy5MQU1CREE/LmZvckVhY2goKHByb3A6IFRzZ0xhbWJkYVByb3ApID0+IHtcblxuICAgICAgICAgICAgY29uc3QgbGFtYmRhSWQgPSBDcmVhdGVMYW1iZGEuZ2V0SWRGb3JMYW1iZGEocHJvcCwgdGhpcy5jb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoIWxhbWJkYUlkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGxhbWJkYWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGFtYmRhTm9kZSA9IGxhbWJkYXMuZmluZCh4ID0+IHgubm9kZS5pZCA9PT0gbGFtYmRhSWQpO1xuXG4gICAgICAgICAgICBpZiAoIWxhbWJkYU5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBmaW5kIHRoZSBMYW1iZGEgSW50ZWdyYXRpb25cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFJvdXRlcy5jcmVhdGVSZXNvdXJjZShwcm9wLCBnYXRld2F5LCBsYW1iZGFOb2RlLCBhdXRob3JpemVyKTtcbiAgICAgICAgfSk7XG4gICAgfVxufSJdfQ==
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlQXBpQW5kQXR0YWNoTGFtYmRhcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvZ2F0ZXdheS9DcmVhdGVBcGlBbmRBdHRhY2hMYW1iZGFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVEQUFvRDtBQUlwRCw0RUFBeUU7QUFFekUsc0ZBQW1GO0FBQ25GLDZDQUF1RDtBQUN2RCxvRkFBaUY7QUFDakYseURBQXNEO0FBS3RELDBEQUFpRDtBQUVqRCxNQUFhLHlCQUEwQixTQUFRLDJCQUE2QjtJQU81RDtJQUNBO0lBQ0E7SUFQRixpQkFBaUIsQ0FBVTtJQUMzQixjQUFjLENBQXFCO0lBRTdDLFlBQVksS0FBZ0IsRUFDeEIsTUFBaUIsRUFDVCxVQUFvQixFQUNwQixNQUF1QixFQUN2QixNQUFpQjtRQUN6QixLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBSGIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBR3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztTQUNoRTthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFB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eUI7UUFFcEUsSUFBSSxNQUFNLEVBQUU7WUFDUixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBc0IsRUFBRSxFQUFFO2dCQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7b0JBRTdCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFckMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUFpQixFQUMvQixPQUFpQixFQUNqQixPQUF5QixFQUN6QixVQUE4QztRQUU5QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUU7WUFFckQsTUFBTSxRQUFRLEdBQUcsMkJBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN4QztZQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUU3RCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQzthQUN4RDtZQUVELHFCQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBM0hELDhEQTJIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcbmltcG9ydCB7IElUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWcvQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBBcGlMYW1iZGFSZXN1bHQgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9BcGlMYW1iZGFSZXN1bHRcIjtcbmltcG9ydCB7IFRzZ0F1dGhvcml6ZXJUeXBlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlcy9Uc2dBdXRob3JpemVyVHlwZVwiO1xuaW1wb3J0IHsgSVJlc3RBcGksIFJlcXVlc3RBdXRob3JpemVyLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IFRzZ0p3dFRva2VuQXV0aG9yaXplciB9IGZyb20gXCIuLi9sYW1iZGEtYXV0aG9yaXplci9Uc2dKd3RUb2tlbkF1dGhvcml6ZXJcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVHNnUmVxdWVzdEF1dGhvcml6ZXIgfSBmcm9tIFwiLi4vbGFtYmRhLWF1dGhvcml6ZXIvVHNnUmVxdWVzdEF1dGhvcml6ZXJcIjtcbmltcG9ydCB7IENyZWF0ZUxhbWJkYSB9IGZyb20gXCIuLi9sYW1iZGEvY3JlYXRlTGFtYmRhXCI7XG5pbXBvcnQgeyBUc2dMYW1iZGFQcm9wcyB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXMvVHNnTGFtYmRhUHJvcHNcIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXNcIjtcbmltcG9ydCB7IFJvdXRlcyB9IGZyb20gXCIuLi9oZWxwZXJzL2NyZWF0ZVJvdXRlc1wiO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlQXBpQW5kQXR0YWNoTGFtYmRhcyBleHRlbmRzIEJhc2VSZXNvdXJjZTxBcGlMYW1iZGFSZXN1bHQ+IHtcbiAgICBcbiAgICBwcm90ZWN0ZWQgcmVxdWlyZUF1dGhvcml6ZXI6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIGF1dGhvcml6ZXJUeXBlPzogVHNnQXV0aG9yaXplclR5cGU7XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LFxuICAgICAgICBjb25maWc6IEFwcENvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSBnYXRld2F5QXBpOiBJUmVzdEFwaSxcbiAgICAgICAgcHJpdmF0ZSBsYXllcnM/OiBMYXllclZlcnNpb25bXSxcbiAgICAgICAgcHJpdmF0ZSB0YWJsZXM/OiBJVGFibGVbXSkge1xuICAgICAgICBzdXBlcihzY29wZSwgY29uZmlnKTtcblxuICAgICAgICBjb25zb2xlLmxvZygnIyMjIENyZWF0ZUFwaUFuZEF0dGFjaExhbWJkYXMgIyMjIENvbnN0cnVjdG9yICMjIzogJywgY29uZmlnKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGhvcml6ZXIgPSAodGhpcy5jb25maWcuUkVTT1VSQ0VTLkFVVEhPUklaRVIgJiYgXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUi50eXBlKSA/IHRydWUgOiBmYWxzZTsgICAgICAgXG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZUF1dGhvcml6ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aG9yaXplclR5cGUgPSB0aGlzLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUj8udHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUiAmJiAhdGhpcy5jb25maWcuUkVTT1VSQ0VTLkFVVEhPUklaRVIudHlwZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbXVzdCBwcm92aWRlIGFuIGF1dGhvcml6ZXIgdHlwZSBpZiBhIEF1dGhvcml6ZXIgaXMgcmVxdWlyZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCk6IEFwaUxhbWJkYVJlc3VsdFtdIHwgbnVsbCB7XG5cbiAgICAgICAgbGV0IGF1dGhvcml6ZXI6IFRva2VuQXV0aG9yaXplciB8IFJlcXVlc3RBdXRob3JpemVyIHwgdW5kZWZpbmVkIHwgbnVsbCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBDcmVhdGUgQXV0aG9yaXplclxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplcikge1xuICAgICAgICAgICAgYXV0aG9yaXplciA9IHRoaXMuY3JlYXRlQXV0aG9yaXplcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIExhbWJkYXNcbiAgICAgICAgY29uc3QgbGFtYmRhcyA9IG5ldyBDcmVhdGVMYW1iZGEodGhpcy5zY29wZSwgdGhpcy5jb25maWcsIHRoaXMubGF5ZXJzKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEdpdmUgQWNjZXNzIHRvIExhbWJkZHMgdG8gQWxsIER5bmFtb0RiIFRhYmxlc1xuICAgICAgICBpZiAodGhpcy50YWJsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduQWNjZXNzVG9UYWJsZXModGhpcy50YWJsZXMsIGxhbWJkYXMuTGFtYmRhcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgUm91dGVzIG9uIEFQSSBHYXRld2F5IGZvciBMYW1iZGFzIGZyb20gY29uZmlnXG4gICAgICAgIHRoaXMuQWRkUm91dGVzKHRoaXMuY29uZmlnLCB0aGlzLmdhdGV3YXlBcGksIGxhbWJkYXMuTGFtYmRhcywgYXV0aG9yaXplciB8fCB1bmRlZmluZWQpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogQXBpTGFtYmRhUmVzdWx0ID0ge1xuICAgICAgICAgICAgYXBpOiB0aGlzLmdhdGV3YXlBcGksXG4gICAgICAgICAgICBhdXRob3JpemVyOiBhdXRob3JpemVyXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBbcmVzdWx0XTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5jcmVhdGVkUmVzb3VyY2VzIS5mb3JFYWNoKCh4LCBpZHgpID0+IHtcbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBBdXRob3JpemVyci0ke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHguYXV0aG9yaXplcj8uYXV0aG9yaXplckFybiFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9ICAgIFxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBdXRob3JpemVyKCkge1xuXG4gICAgICAgIGxldCBhdXRob3JpemVyOiBUb2tlbkF1dGhvcml6ZXIgfCBSZXF1ZXN0QXV0aG9yaXplciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplciAmJiB0aGlzLmF1dGhvcml6ZXJUeXBlID09PSBUc2dBdXRob3JpemVyVHlwZS5UT0tFTl9BVVRIT1JJWkVSKSB7XG5cbiAgICAgICAgICAgIGF1dGhvcml6ZXIgPSBuZXcgVHNnSnd0VG9rZW5BdXRob3JpemVyKHRoaXMuc2NvcGUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcpLkp3dEF1dGhvcml6ZXI7XG5cbiAgICAgICAgICAgIGF1dGhvcml6ZXI/Ll9hdHRhY2hUb0FwaSh0aGlzLmdhdGV3YXlBcGkpO1xuICAgICAgICAgICAgYXV0aG9yaXplcj8uYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG5cbiAgICAgICAgICAgIHJldHVybiBhdXRob3JpemVyO1xuXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplciAmJiB0aGlzLmF1dGhvcml6ZXJUeXBlID09PSBUc2dBdXRob3JpemVyVHlwZS5SRVFVRVNUX0FVVEhPUklaRVIpIHtcbiAgICAgICAgICAgIGF1dGhvcml6ZXIgPSBuZXcgVHNnUmVxdWVzdEF1dGhvcml6ZXIodGhpcy5zY29wZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZywgdGhpcy5sYXllcnMsIHRoaXMudGFibGVzKS5SZXF1ZXN0QXV0aG9yaXplciBhcyBSZXF1ZXN0QXV0aG9yaXplcjtcblxuICAgICAgICAgICAgYXV0aG9yaXplcj8uX2F0dGFjaFRvQXBpKHRoaXMuZ2F0ZXdheUFwaSk7XG4gICAgICAgICAgICBhdXRob3JpemVyPy5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgICAgICAgICAgcmV0dXJuIGF1dGhvcml6ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3NpZ25BY2Nlc3NUb1RhYmxlcyh0YWJsZXM6IElUYWJsZVtdLCBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7XG5cbiAgICAgICAgaWYgKHRhYmxlcykge1xuICAgICAgICAgICAgbGFtYmRhcy5mb3JFYWNoKChsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICB0YWJsZXMuZm9yRWFjaCgodGFibGU6IElUYWJsZSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShsYW1iZGEpO1xuXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgQWRkUm91dGVzKGNvbmZpZzogQXBwQ29uZmlnLFxuICAgICAgICBnYXRld2F5OiBJUmVzdEFwaSxcbiAgICAgICAgbGFtYmRhczogTm9kZWpzRnVuY3Rpb25bXSxcbiAgICAgICAgYXV0aG9yaXplcj86IFRva2VuQXV0aG9yaXplcnxSZXF1ZXN0QXV0aG9yaXplcikge1xuXG4gICAgICAgIGNvbmZpZy5SRVNPVVJDRVMuTEFNQkRBPy5mb3JFYWNoKChwcm9wOiBUc2dMYW1iZGFQcm9wKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbWJkYUlkID0gQ3JlYXRlTGFtYmRhLmdldElkRm9yTGFtYmRhKHByb3AsIHRoaXMuY29uZmlnKTtcblxuICAgICAgICAgICAgaWYgKCFsYW1iZGFJZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgZmluZCBsYW1iZGFgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhbWJkYU5vZGUgPSBsYW1iZGFzLmZpbmQoeCA9PiB4Lm5vZGUuaWQgPT09IGxhbWJkYUlkKTtcblxuICAgICAgICAgICAgaWYgKCFsYW1iZGFOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZmluZCB0aGUgTGFtYmRhIEludGVncmF0aW9uXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBSb3V0ZXMuY3JlYXRlUmVzb3VyY2UocHJvcCwgZ2F0ZXdheSwgbGFtYmRhTm9kZSwgYXV0aG9yaXplcik7XG4gICAgICAgIH0pO1xuICAgIH1cbn0iXX0=
|
|
@@ -3,10 +3,12 @@ import { Construct } from "constructs";
|
|
|
3
3
|
import { AppConfig } from "../../config/AppConfig";
|
|
4
4
|
import { BaseResource } from "../base/baseResource";
|
|
5
5
|
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
6
|
+
import { ITableV2 } from "aws-cdk-lib/aws-dynamodb";
|
|
6
7
|
export declare class TsgRequestAuthorizer extends BaseResource<RequestAuthorizer> {
|
|
7
8
|
private layers?;
|
|
9
|
+
private tables?;
|
|
8
10
|
get RequestAuthorizer(): RequestAuthorizer | undefined;
|
|
9
|
-
constructor(scope: Construct, config: AppConfig, layers?: LayerVersion[] | undefined);
|
|
11
|
+
constructor(scope: Construct, config: AppConfig, layers?: LayerVersion[] | undefined, tables?: ITableV2[] | undefined);
|
|
10
12
|
protected createResource(scope: Construct): RequestAuthorizer[] | null;
|
|
11
13
|
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
12
14
|
}
|
|
@@ -7,15 +7,19 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
7
7
|
const createAuthorizerHelpers_1 = require("./createAuthorizerHelpers");
|
|
8
8
|
class TsgRequestAuthorizer extends baseResource_1.BaseResource {
|
|
9
9
|
layers;
|
|
10
|
+
tables;
|
|
10
11
|
get RequestAuthorizer() {
|
|
11
12
|
return (this.createdResources && this.createdResources.length > 0) ? this.createdResources[0] : undefined;
|
|
12
13
|
}
|
|
13
|
-
constructor(scope, config, layers) {
|
|
14
|
+
constructor(scope, config, layers, tables) {
|
|
14
15
|
super(scope, config);
|
|
15
16
|
this.layers = layers;
|
|
17
|
+
this.tables = tables;
|
|
18
|
+
this.createResource(scope);
|
|
19
|
+
this.createOutput(scope, this.createdResources);
|
|
16
20
|
}
|
|
17
21
|
createResource(scope) {
|
|
18
|
-
const authorizer = (0, createAuthorizerHelpers_1.createAuthorizer)(scope, this.config, this.layers);
|
|
22
|
+
const authorizer = (0, createAuthorizerHelpers_1.createAuthorizer)(scope, this.config, this.layers, this.tables);
|
|
19
23
|
return [authorizer];
|
|
20
24
|
}
|
|
21
25
|
createOutput(scope, createdAssets) {
|
|
@@ -30,4 +34,4 @@ class TsgRequestAuthorizer extends baseResource_1.BaseResource {
|
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
exports.TsgRequestAuthorizer = TsgRequestAuthorizer;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHNnUmVxdWVzdEF1dGhvcml6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xhbWJkYS1hdXRob3JpemVyL1RzZ1JlcXVlc3RBdXRob3JpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUErRDtBQUcvRCx1REFBb0Q7QUFFcEQsNkNBQXdDO0FBQ3hDLHVFQUE2RDtBQUs3RCxNQUFhLG9CQUFxQixTQUFRLDJCQUErQjtJQU1aO0lBQWlDO0lBSjFGLElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUcsQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxNQUFpQixFQUFVLE1BQXVCLEVBQVUsTUFBbUI7UUFDekcsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQURnQyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWE7UUFHekcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUEsMENBQWdCLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFUyxZQUFZLENBQUksS0FBZ0IsRUFBRSxhQUFrQjtRQUMxRCxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLFlBQVksa0NBQWlCLEVBQUU7Z0JBQ3BDLG1DQUFtQztnQkFDbkMsSUFBSSx1QkFBUyxDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtvQkFDekMsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7aUJBQzdELENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUE3QkQsb0RBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWVzdEF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgY3JlYXRlQXV0aG9yaXplciB9IGZyb20gXCIuL2NyZWF0ZUF1dGhvcml6ZXJIZWxwZXJzXCI7XG5pbXBvcnQgeyBMYXllclZlcnNpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgSVRhYmxlVjIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5cblxuZXhwb3J0IGNsYXNzIFRzZ1JlcXVlc3RBdXRob3JpemVyIGV4dGVuZHMgQmFzZVJlc291cmNlPFJlcXVlc3RBdXRob3JpemVyPiB7XG5cbiAgICBnZXQgUmVxdWVzdEF1dGhvcml6ZXIoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5jcmVhdGVkUmVzb3VyY2VzICYmIHRoaXMuY3JlYXRlZFJlc291cmNlcy5sZW5ndGggPiAwKSA/IHRoaXMuY3JlYXRlZFJlc291cmNlc1swXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBjb25maWc6IEFwcENvbmZpZywgcHJpdmF0ZSBsYXllcnM/OiBMYXllclZlcnNpb25bXSwgcHJpdmF0ZSB0YWJsZXM/OiBJVGFibGVWMltdKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHNjb3BlLCB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogUmVxdWVzdEF1dGhvcml6ZXJbXSB8IG51bGwge1xuICAgICAgICBjb25zdCBhdXRob3JpemVyID0gY3JlYXRlQXV0aG9yaXplcihzY29wZSwgdGhpcy5jb25maWcsIHRoaXMubGF5ZXJzLCB0aGlzLnRhYmxlcyk7XG4gICAgICAgIHJldHVybiBbYXV0aG9yaXplcl07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dDxUPihzY29wZTogQ29uc3RydWN0LCBjcmVhdGVkQXNzZXRzOiBUW10pOiB2b2lkIHtcbiAgICAgICAgY3JlYXRlZEFzc2V0cy5mb3JFYWNoKChhc3NldCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFzc2V0IGluc3RhbmNlb2YgUmVxdWVzdEF1dGhvcml6ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBPdXRwdXQgdGhlIEFSTiBvZiB0aGUgYXV0aG9yaXplclxuICAgICAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIFwiUmVxdWVzdEF1dGhvcml6ZXJBcm5cIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYCR7YXNzZXQuYXV0aG9yaXphdGlvblR5cGV9OiR7YXNzZXQuYXV0aG9yaXplckFybn1gXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn0iXX0=
|
|
@@ -2,4 +2,5 @@ import { RequestAuthorizer } from "aws-cdk-lib/aws-apigateway";
|
|
|
2
2
|
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
3
3
|
import { Construct } from "constructs";
|
|
4
4
|
import { AppConfig } from "../../config/AppConfig";
|
|
5
|
-
|
|
5
|
+
import { ITableV2 } from "aws-cdk-lib/aws-dynamodb";
|
|
6
|
+
export declare const createAuthorizer: (scope: Construct, config: AppConfig, layers?: LayerVersion[], tables?: ITableV2[]) => RequestAuthorizer;
|
|
@@ -6,8 +6,8 @@ const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
|
|
|
6
6
|
const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
9
|
-
const createAuthorizer = (scope, config, layers) => {
|
|
10
|
-
const lambda = createLambdaForAuthorizer(scope, config);
|
|
9
|
+
const createAuthorizer = (scope, config, layers, tables) => {
|
|
10
|
+
const lambda = createLambdaForAuthorizer(scope, config, layers, tables);
|
|
11
11
|
const lambdaAuthroizer = new aws_apigateway_1.RequestAuthorizer(scope, `lambdaAuthorizer`, {
|
|
12
12
|
handler: lambda,
|
|
13
13
|
identitySources: [aws_apigateway_1.IdentitySource.header(config.RESOURCES.AUTHORIZER?.headerName)],
|
|
@@ -17,9 +17,14 @@ const createAuthorizer = (scope, config, layers) => {
|
|
|
17
17
|
return lambdaAuthroizer;
|
|
18
18
|
};
|
|
19
19
|
exports.createAuthorizer = createAuthorizer;
|
|
20
|
-
const createLambdaForAuthorizer = (scope, config, layers) => {
|
|
20
|
+
const createLambdaForAuthorizer = (scope, config, layers, tables) => {
|
|
21
21
|
const props = createLambdaProps(config, layers);
|
|
22
22
|
const lambda = new aws_lambda_nodejs_1.NodejsFunction(scope, `${config.AppPrefix}-authorizer`, props);
|
|
23
|
+
if (tables && tables.length > 0) {
|
|
24
|
+
tables.forEach((table) => {
|
|
25
|
+
table.grantReadData(lambda);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
23
28
|
return lambda;
|
|
24
29
|
};
|
|
25
30
|
const createLambdaProps = (appConfig, layers) => {
|
|
@@ -47,4 +52,4 @@ const createLambdaProps = (appConfig, layers) => {
|
|
|
47
52
|
};
|
|
48
53
|
return lambdaProp;
|
|
49
54
|
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXV0aG9yaXplckhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xhbWJkYS1hdXRob3JpemVyL2NyZWF0ZUF1dGhvcml6ZXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1QztBQUN2QywrREFBK0U7QUFJL0UscUVBQW1HO0FBQ25HLDZCQUE4QjtBQUM5QixtREFBcUQ7QUFHOUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWdCLEVBQUUsTUFBaUIsRUFBRSxNQUF1QixFQUN6RixNQUFtQixFQUFFLEVBQUU7SUFFdkIsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFeEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGtDQUFpQixDQUMxQyxLQUFLLEVBQ0wsa0JBQWtCLEVBQ2xCO1FBQ0ksT0FBTyxFQUFFLE1BQU07UUFDZixlQUFlLEVBQUUsQ0FBQywrQkFBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFXLENBQUMsQ0FBQztRQUNsRixjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxhQUFhO1FBQ2hELGVBQWUsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDdkMsQ0FDSixDQUFDO0lBRUYsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFqQlcsUUFBQSxnQkFBZ0Isb0JBaUIzQjtBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLE1BQWlCLEVBQUUsTUFBdUIsRUFBRSxNQUFtQixFQUFFLEVBQUU7SUFFcEgsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRWhELE1BQU0sTUFBTSxHQUFHLElBQUksa0NBQWMsQ0FDN0IsS0FBSyxFQUNMLEdBQUcsTUFBTSxDQUFDLFNBQVMsYUFBYSxFQUNoQyxLQUFLLENBQ1IsQ0FBQztJQUVFLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyQixLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0tBQ1A7SUFFTCxPQUFPLE1BQU0sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBb0IsRUFBRSxNQUF1QixFQUFFLEVBQUU7SUFHeEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFXLENBQUM7SUFFN0MsTUFBTSxVQUFVLEdBQXdCO1FBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsWUFBWSxFQUFFLEdBQUcsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ25ELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztRQUNyQixZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUFhLENBQUMsU0FBUztRQUNyRixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVk7UUFDdkQsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUc7UUFDOUIsV0FBVyxFQUFFO1lBQ1QsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixHQUFHLElBQUksQ0FBQyxXQUFXO1NBQ3RCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsUUFBUTtZQUNoQixTQUFTLEVBQUUsSUFBSTtZQUNmLGFBQWEsRUFBRSxpQ0FBYSxDQUFDLFFBQVE7WUFDckMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVc7U0FDcEQ7UUFDRCxNQUFNO0tBQ1QsQ0FBQTtJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJZGVudGl0eVNvdXJjZSwgUmVxdWVzdEF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElGdW5jdGlvbiwgTGF5ZXJWZXJzaW9uLCBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24sIE5vZGVqc0Z1bmN0aW9uUHJvcHMsIFNvdXJjZU1hcE1vZGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcbmltcG9ydCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBJVGFibGVWMiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUF1dGhvcml6ZXIgPSAoc2NvcGU6IENvbnN0cnVjdCwgY29uZmlnOiBBcHBDb25maWcsIGxheWVycz86IExheWVyVmVyc2lvbltdLFxuICAgIHRhYmxlcz86IElUYWJsZVYyW10pID0+IHtcblxuICAgIGNvbnN0IGxhbWJkYSA9IGNyZWF0ZUxhbWJkYUZvckF1dGhvcml6ZXIoc2NvcGUsIGNvbmZpZywgbGF5ZXJzLCB0YWJsZXMpO1xuXG4gICAgY29uc3QgbGFtYmRhQXV0aHJvaXplciA9IG5ldyBSZXF1ZXN0QXV0aG9yaXplcihcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGBsYW1iZGFBdXRob3JpemVyYCxcbiAgICAgICAge1xuICAgICAgICAgICAgaGFuZGxlcjogbGFtYmRhLFxuICAgICAgICAgICAgaWRlbnRpdHlTb3VyY2VzOiBbSWRlbnRpdHlTb3VyY2UuaGVhZGVyKGNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUj8uaGVhZGVyTmFtZSEpXSxcbiAgICAgICAgICAgIGF1dGhvcml6ZXJOYW1lOiBgJHtjb25maWcuQXBwUHJlZml4fS1hdXRob3JpemVyYCxcbiAgICAgICAgICAgIHJlc3VsdHNDYWNoZVR0bDogRHVyYXRpb24uc2Vjb25kcygwKSxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gbGFtYmRhQXV0aHJvaXplcjtcbn07XG5cbmNvbnN0IGNyZWF0ZUxhbWJkYUZvckF1dGhvcml6ZXIgPSAoc2NvcGU6IENvbnN0cnVjdCwgY29uZmlnOiBBcHBDb25maWcsIGxheWVycz86IExheWVyVmVyc2lvbltdLCB0YWJsZXM/OiBJVGFibGVWMltdKSA9PiB7XG5cbiAgICBjb25zdCBwcm9wcyA9IGNyZWF0ZUxhbWJkYVByb3BzKGNvbmZpZywgbGF5ZXJzKTtcblxuICAgIGNvbnN0IGxhbWJkYSA9IG5ldyBOb2RlanNGdW5jdGlvbihcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGAke2NvbmZpZy5BcHBQcmVmaXh9LWF1dGhvcml6ZXJgLFxuICAgICAgICBwcm9wc1xuICAgICk7XG5cbiAgICAgICAgaWYgKHRhYmxlcyAmJiB0YWJsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGFibGVzLmZvckVhY2goKHRhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGFibGUuZ3JhbnRSZWFkRGF0YShsYW1iZGEpO1xuICAgICAgICAgICAgIH0pOyBcbiAgICAgICAgfVxuICAgIFxuICAgIHJldHVybiBsYW1iZGE7XG4gfTtcblxuY29uc3QgY3JlYXRlTGFtYmRhUHJvcHMgPSAoYXBwQ29uZmlnOiBBcHBDb25maWcsIGxheWVycz86IExheWVyVmVyc2lvbltdKSA9PiB7XG5cblxuICAgIGNvbnN0IHByb3AgPSBhcHBDb25maWcuUkVTT1VSQ0VTLkFVVEhPUklaRVIhO1xuXG4gICAgY29uc3QgbGFtYmRhUHJvcDogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgZW50cnk6IHBhdGguam9pbihwcm9wLmNvZGVQYXRoKSxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBgJHthcHBDb25maWcuQXBwUHJlZml4fS0ke3Byb3AubmFtZX1gLFxuICAgICAgICBoYW5kbGVyOiBwcm9wLmhhbmRsZXIsXG4gICAgICAgIGxvZ1JldGVudGlvbjogKCFwcm9wLmxvZ0R1cmF0aW9uKSA/IFJldGVudGlvbkRheXMuRklWRV9EQVlTIDogUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEgsXG4gICAgICAgIHJ1bnRpbWU6IHByb3AucnVudGltZSB8fCBhcHBDb25maWcuR0xPQkFMUy5zdGFja1J1bnRpbWUsXG4gICAgICAgIHRpbWVvdXQ6IHByb3AuZHVyYXRpb24gfHwgRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogcHJvcC5tZW1vcnkgfHwgNTEyLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgXCJWRVJCT1NFX0xPR0dJTkdcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAuLi5wcm9wLmVudmlyb25tZW50XG4gICAgICAgIH0sXG4gICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgICBtaW5pZnk6IGZhbHNlLFxuICAgICAgICAgICAgdGFyZ2V0OiAnZXNOZXh0JyxcbiAgICAgICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgICAgIHNvdXJjZU1hcE1vZGU6IFNvdXJjZU1hcE1vZGUuRVhURVJOQUwsXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogcHJvcC5lbnZpcm9ubWVudCB8fCBwcm9wLmVudmlyb25tZW50LFxuICAgICAgICB9LFxuICAgICAgICBsYXllcnNcbiAgICB9XG5cbiAgICByZXR1cm4gbGFtYmRhUHJvcDtcbn07Il19
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ import { Routes } from "../helpers/createRoutes";
|
|
|
18
18
|
export class CreateApiAndAttachLambdas extends BaseResource<ApiLambdaResult> {
|
|
19
19
|
|
|
20
20
|
protected requireAuthorizer: boolean;
|
|
21
|
-
protected
|
|
21
|
+
protected authorizerType?: TsgAuthorizerType;
|
|
22
22
|
|
|
23
23
|
constructor(scope: Construct,
|
|
24
24
|
config: AppConfig,
|
|
@@ -33,7 +33,7 @@ export class CreateApiAndAttachLambdas extends BaseResource<ApiLambdaResult> {
|
|
|
33
33
|
this.config.RESOURCES.AUTHORIZER.type) ? true : false;
|
|
34
34
|
|
|
35
35
|
if (this.requireAuthorizer) {
|
|
36
|
-
this.
|
|
36
|
+
this.authorizerType = this.config.RESOURCES.AUTHORIZER?.type;
|
|
37
37
|
} else if (this.config.RESOURCES.AUTHORIZER && !this.config.RESOURCES.AUTHORIZER.type) {
|
|
38
38
|
throw new Error(`You must provide an authorizer type if a Authorizer is required`);
|
|
39
39
|
}
|
|
@@ -81,7 +81,7 @@ export class CreateApiAndAttachLambdas extends BaseResource<ApiLambdaResult> {
|
|
|
81
81
|
|
|
82
82
|
let authorizer: TokenAuthorizer | RequestAuthorizer | undefined = undefined;
|
|
83
83
|
|
|
84
|
-
if (this.requireAuthorizer && this.
|
|
84
|
+
if (this.requireAuthorizer && this.authorizerType === TsgAuthorizerType.TOKEN_AUTHORIZER) {
|
|
85
85
|
|
|
86
86
|
authorizer = new TsgJwtTokenAuthorizer(this.scope,
|
|
87
87
|
this.config).JwtAuthorizer;
|
|
@@ -91,9 +91,9 @@ export class CreateApiAndAttachLambdas extends BaseResource<ApiLambdaResult> {
|
|
|
91
91
|
|
|
92
92
|
return authorizer;
|
|
93
93
|
|
|
94
|
-
} else if (this.requireAuthorizer && this.
|
|
94
|
+
} else if (this.requireAuthorizer && this.authorizerType === TsgAuthorizerType.REQUEST_AUTHORIZER) {
|
|
95
95
|
authorizer = new TsgRequestAuthorizer(this.scope,
|
|
96
|
-
this.config).RequestAuthorizer as RequestAuthorizer;
|
|
96
|
+
this.config, this.layers, this.tables).RequestAuthorizer as RequestAuthorizer;
|
|
97
97
|
|
|
98
98
|
authorizer?._attachToApi(this.gatewayApi);
|
|
99
99
|
authorizer?.applyRemovalPolicy(RemovalPolicy.DESTROY);
|
|
@@ -6,6 +6,7 @@ import { BaseResource } from "../base/baseResource";
|
|
|
6
6
|
import { CfnOutput } from "aws-cdk-lib";
|
|
7
7
|
import { createAuthorizer } from "./createAuthorizerHelpers";
|
|
8
8
|
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
9
|
+
import { ITableV2 } from "aws-cdk-lib/aws-dynamodb";
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
export class TsgRequestAuthorizer extends BaseResource<RequestAuthorizer> {
|
|
@@ -14,12 +15,16 @@ export class TsgRequestAuthorizer extends BaseResource<RequestAuthorizer> {
|
|
|
14
15
|
return (this.createdResources && this.createdResources.length > 0) ? this.createdResources[0] : undefined;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
constructor(scope: Construct, config: AppConfig, private layers?: LayerVersion[]) {
|
|
18
|
+
constructor(scope: Construct, config: AppConfig, private layers?: LayerVersion[], private tables?: ITableV2[]) {
|
|
18
19
|
super(scope, config);
|
|
20
|
+
|
|
21
|
+
this.createResource(scope);
|
|
22
|
+
|
|
23
|
+
this.createOutput(scope, this.createdResources);
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
protected createResource(scope: Construct): RequestAuthorizer[] | null {
|
|
22
|
-
const authorizer = createAuthorizer(scope, this.config, this.layers);
|
|
27
|
+
const authorizer = createAuthorizer(scope, this.config, this.layers, this.tables);
|
|
23
28
|
return [authorizer];
|
|
24
29
|
}
|
|
25
30
|
|
|
@@ -6,10 +6,12 @@ import { AppConfig } from "../../config/AppConfig";
|
|
|
6
6
|
import { NodejsFunction, NodejsFunctionProps, SourceMapMode } from "aws-cdk-lib/aws-lambda-nodejs";
|
|
7
7
|
import path = require("path");
|
|
8
8
|
import { RetentionDays } from "aws-cdk-lib/aws-logs";
|
|
9
|
+
import { ITableV2 } from "aws-cdk-lib/aws-dynamodb";
|
|
9
10
|
|
|
10
|
-
export const createAuthorizer = (scope: Construct, config: AppConfig, layers?: LayerVersion[]
|
|
11
|
+
export const createAuthorizer = (scope: Construct, config: AppConfig, layers?: LayerVersion[],
|
|
12
|
+
tables?: ITableV2[]) => {
|
|
11
13
|
|
|
12
|
-
const lambda = createLambdaForAuthorizer(scope, config);
|
|
14
|
+
const lambda = createLambdaForAuthorizer(scope, config, layers, tables);
|
|
13
15
|
|
|
14
16
|
const lambdaAuthroizer = new RequestAuthorizer(
|
|
15
17
|
scope,
|
|
@@ -25,7 +27,7 @@ export const createAuthorizer = (scope: Construct, config: AppConfig, layers?: L
|
|
|
25
27
|
return lambdaAuthroizer;
|
|
26
28
|
};
|
|
27
29
|
|
|
28
|
-
const createLambdaForAuthorizer = (scope: Construct, config: AppConfig, layers?: LayerVersion[]) => {
|
|
30
|
+
const createLambdaForAuthorizer = (scope: Construct, config: AppConfig, layers?: LayerVersion[], tables?: ITableV2[]) => {
|
|
29
31
|
|
|
30
32
|
const props = createLambdaProps(config, layers);
|
|
31
33
|
|
|
@@ -35,6 +37,12 @@ const createLambdaForAuthorizer = (scope: Construct, config: AppConfig, layers?:
|
|
|
35
37
|
props
|
|
36
38
|
);
|
|
37
39
|
|
|
40
|
+
if (tables && tables.length > 0) {
|
|
41
|
+
tables.forEach((table) => {
|
|
42
|
+
table.grantReadData(lambda);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
38
46
|
return lambda;
|
|
39
47
|
};
|
|
40
48
|
|