When trying to authenticate using a cache provider, we get a TypeError: this.cacheProvider.saveAsync is not a function error message.
2022-06-04 16:10:58.933+0000 [INFO] Response received
2022-06-04 16:10:58.933+0000 [INFO] Configuration data has been parsed
2022-06-04 16:10:58.933+0000 [DEBUG] entered recreateHttpServer(serverURI=https://apitest.techno24x7.com,port=8090
2022-06-04 16:10:58.933+0000 [DEBUG] httpPort = 8090
2022-06-04 16:11:01.400+0000 [VERBOSE] Issuing token
2022-06-04 16:11:01.401+0000 [INFO] 159.223.101.115 - GET /passport/token HTTP/1.1 200 201 - 1.530 ms
2022-06-04 16:11:01.528+0000 [VERBOSE] Validating token
2022-06-04 16:11:01.528+0000 [VERBOSE] Authenticating request against samltest.id
2022-06-04 16:11:01.530+0000 [ERROR] Error: TypeError: this.cacheProvider.saveAsync is not a function
2022-06-04 16:11:01.530+0000 [ERROR] TypeError: this.cacheProvider.saveAsync is not a function
at SAML.generateAuthorizeRequestAsync (/opt/gluu/node/passport/node_modules/passport-saml/lib/node-saml/saml.js:183:38)
at SAML.getAuthorizeUrlAsync (/opt/gluu/node/passport/node_modules/passport-saml/lib/node-saml/saml.js:407:36)
at login-request (/opt/gluu/node/passport/node_modules/passport-saml/lib/passport-saml/strategy.js:106:60)
at Strategy.authenticate (/opt/gluu/node/passport/node_modules/passport-saml/lib/passport-saml/strategy.js:129:13)
at attempt (/opt/gluu/node/passport/node_modules/passport/lib/middleware/authenticate.js:366:16)
at authenticate (/opt/gluu/node/passport/node_modules/passport/lib/middleware/authenticate.js:367:7)
at authenticateRequest (/opt/gluu/node/passport/server/routes.js:112:77)
at Layer.handle [as handle_request] (/opt/gluu/node/passport/node_modules/express/lib/router/layer.js:95:5)
at next (/opt/gluu/node/passport/node_modules/express/lib/router/route.js:137:13)
at validateToken (/opt/gluu/node/passport/server/routes.js:140:5)
at Layer.handle [as handle_request] (/opt/gluu/node/passport/node_modules/express/lib/router/layer.js:95:5)
at next (/opt/gluu/node/passport/node_modules/express/lib/router/route.js:137:13)
at validateProvider (/opt/gluu/node/passport/server/routes.js:103:5)
at Layer.handle [as handle_request] (/opt/gluu/node/passport/node_modules/express/lib/router/layer.js:95:5)
at next (/opt/gluu/node/passport/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/opt/gluu/node/passport/node_modules/express/lib/router/route.js:112:3)
This happens because we did not upgraded a badly documented breaking change from passport-saml module:
When trying to authenticate using a cache provider, we get a
TypeError: this.cacheProvider.saveAsync is not a function
error message.This happens because we did not upgraded a badly documented breaking change from passport-saml module:
https://github.com/GluuFederation/gluu-passport/blob/65c6a2b420ff0d9da1574cc0635641fbed8efefa/server/cache-provider.js#L47-L76
It also looks like this scenario has not been tested.