diff --git a/docs/securityHandlers.md b/docs/securityHandlers.md index c6b744eb..0c47c66c 100644 --- a/docs/securityHandlers.md +++ b/docs/securityHandlers.md @@ -4,7 +4,7 @@ The [OpenApi](https://www.openapis.org/) `Operation` object allows for security requirements that specify which security scheme(s) should be applied to this operation. OpenApi also allows for global security requirements via the `/components/security` property (v3) or the `/security` property (v2). You can specify your own securityHandlers with the `securityHandlers` option. -If the provided object has an `initialize` function then fastify-openapi-glue will call this function with the `/components/securitySchemes` property (v3) or the `/securityDefinitions` property (v2) of the specification provided. +If the provided object has an async `initialize` function then fastify-openapi-glue will call this function with the `/components/securitySchemes` property (v3) or the `/securityDefinitions` property (v2) of the specification provided. ### Example diff --git a/examples/generated-javascript-project/package.json b/examples/generated-javascript-project/package.json index 9fc2372d..083f944e 100644 --- a/examples/generated-javascript-project/package.json +++ b/examples/generated-javascript-project/package.json @@ -16,7 +16,7 @@ "@seriousme/openapi-schema-validator": "^2.1.1", "js-yaml": "^4.1.0", "minimist": "^1.2.8", - "fastify-openapi-glue": "^4.3.2" + "fastify-openapi-glue": "^4.3.3" }, "devDependencies": { "fastify": "^4.23.1", diff --git a/examples/generated-javascript-project/security.js b/examples/generated-javascript-project/security.js index a5d756c2..a34240b5 100644 --- a/examples/generated-javascript-project/security.js +++ b/examples/generated-javascript-project/security.js @@ -1,7 +1,7 @@ // implementation of the security schemes in the openapi specification export class Security { - initialize(schemes) { + async initialize(schemes) { // schemes will contain securitySchemes as found in the openapi specification console.log("Initialize:", JSON.stringify(schemes)); } diff --git a/examples/generated-standaloneJS-project/security.js b/examples/generated-standaloneJS-project/security.js index a5d756c2..a34240b5 100644 --- a/examples/generated-standaloneJS-project/security.js +++ b/examples/generated-standaloneJS-project/security.js @@ -1,7 +1,7 @@ // implementation of the security schemes in the openapi specification export class Security { - initialize(schemes) { + async initialize(schemes) { // schemes will contain securitySchemes as found in the openapi specification console.log("Initialize:", JSON.stringify(schemes)); } diff --git a/index.js b/index.js index 520d5bae..0a2a68db 100644 --- a/index.js +++ b/index.js @@ -51,7 +51,7 @@ async function getSecurity(instance, securityHandlers, config) { checkObject(securityHandlers, "securityHandlers"); const security = new SecurityHandlers(securityHandlers); if ("initialize" in securityHandlers) { - securityHandlers.initialize(config.securitySchemes); + await securityHandlers.initialize(config.securitySchemes); } createSecurityHandlers(instance, security, config); return security; diff --git a/lib/templates/js/security.js b/lib/templates/js/security.js index 35dec215..1dda2b5b 100644 --- a/lib/templates/js/security.js +++ b/lib/templates/js/security.js @@ -6,7 +6,7 @@ export default (data) => { return `// implementation of the security schemes in the openapi specification export class Security { - initialize(schemes) { + async initialize(schemes) { // schemes will contain securitySchemes as found in the openapi specification console.log("Initialize:", JSON.stringify(schemes)); } diff --git a/lib/templates/standaloneJS/security.js b/lib/templates/standaloneJS/security.js index 35dec215..1dda2b5b 100644 --- a/lib/templates/standaloneJS/security.js +++ b/lib/templates/standaloneJS/security.js @@ -6,7 +6,7 @@ export default (data) => { return `// implementation of the security schemes in the openapi specification export class Security { - initialize(schemes) { + async initialize(schemes) { // schemes will contain securitySchemes as found in the openapi specification console.log("Initialize:", JSON.stringify(schemes)); } diff --git a/test/test-securityHandlers.v2.js b/test/test-securityHandlers.v2.js index 1c34d87a..290e3e52 100644 --- a/test/test-securityHandlers.v2.js +++ b/test/test-securityHandlers.v2.js @@ -124,7 +124,7 @@ test("initalization of securityHandlers succeeds", (t) => { specification: testSpec, serviceHandlers, securityHandlers: { - initialize: (securitySchemes) => { + initialize: async (securitySchemes) => { const securitySchemeFromSpec = JSON.stringify( testSpec.securityDefinitions, ); diff --git a/test/test-securityHandlers.v3.js b/test/test-securityHandlers.v3.js index 579f67c1..fb197740 100644 --- a/test/test-securityHandlers.v3.js +++ b/test/test-securityHandlers.v3.js @@ -170,7 +170,7 @@ test("initalization of securityHandlers succeeds", (t) => { specification: testSpec, serviceHandlers, securityHandlers: { - initialize: (securitySchemes) => { + initialize: async (securitySchemes) => { const securitySchemeFromSpec = JSON.stringify( testSpec.components.securitySchemes, ); diff --git a/test/test-swagger-noBasePath.v2.javascript.checksums.json b/test/test-swagger-noBasePath.v2.javascript.checksums.json index 2a3a6544..5e3b8fef 100644 --- a/test/test-swagger-noBasePath.v2.javascript.checksums.json +++ b/test/test-swagger-noBasePath.v2.javascript.checksums.json @@ -10,7 +10,7 @@ }, "security": { "fileName": "security.js", - "checksum": "6830b20e7a63ea9baa95575e901927e29944d6c51a4306e182a2ed3a599c1d80" + "checksum": "e75dac6f2199a27e5517fac04d677ee7711a6c7d99374fef9cd84269e493b4db" }, "plugin": { "fileName": "index.js", diff --git a/test/test-swagger-noBasePath.v2.standaloneJS.checksums.json b/test/test-swagger-noBasePath.v2.standaloneJS.checksums.json index 98a5ea03..1e7b5bab 100644 --- a/test/test-swagger-noBasePath.v2.standaloneJS.checksums.json +++ b/test/test-swagger-noBasePath.v2.standaloneJS.checksums.json @@ -10,7 +10,7 @@ }, "security": { "fileName": "security.js", - "checksum": "6830b20e7a63ea9baa95575e901927e29944d6c51a4306e182a2ed3a599c1d80" + "checksum": "e75dac6f2199a27e5517fac04d677ee7711a6c7d99374fef9cd84269e493b4db" }, "plugin": { "fileName": "index.js", diff --git a/test/test-swagger.v2.javascript.checksums.json b/test/test-swagger.v2.javascript.checksums.json index 3c69a964..92657b10 100644 --- a/test/test-swagger.v2.javascript.checksums.json +++ b/test/test-swagger.v2.javascript.checksums.json @@ -10,7 +10,7 @@ }, "security": { "fileName": "security.js", - "checksum": "daf2a6d2e22dcaccbe41629835b1aff054cbff578b470927713c3ca175c0b354" + "checksum": "78442cf521da3a908d4ec2b3842938972a0220d82bf078fd6eb57ade2cdb330d" }, "plugin": { "fileName": "index.js", diff --git a/test/test-swagger.v2.standaloneJS.checksums.json b/test/test-swagger.v2.standaloneJS.checksums.json index fc290f9d..c27fa34e 100644 --- a/test/test-swagger.v2.standaloneJS.checksums.json +++ b/test/test-swagger.v2.standaloneJS.checksums.json @@ -10,7 +10,7 @@ }, "security": { "fileName": "security.js", - "checksum": "daf2a6d2e22dcaccbe41629835b1aff054cbff578b470927713c3ca175c0b354" + "checksum": "78442cf521da3a908d4ec2b3842938972a0220d82bf078fd6eb57ade2cdb330d" }, "plugin": { "fileName": "index.js", diff --git a/test/update-checksums.js b/test/update-checksums.js old mode 100644 new mode 100755