diff --git a/packages/nodes-base/credentials/HttpDigestAuth.credentials.ts b/packages/nodes-base/credentials/HttpDigestAuth.credentials.ts new file mode 100644 index 0000000000..fa853fd20d --- /dev/null +++ b/packages/nodes-base/credentials/HttpDigestAuth.credentials.ts @@ -0,0 +1,28 @@ +import { + ICredentialType, + NodePropertyTypes, +} from 'n8n-workflow'; + + +export class HttpDigestAuth implements ICredentialType { + name = 'httpDigestAuth'; + displayName = 'Digest Auth'; + properties = [ + { + displayName: 'User', + name: 'user', + type: 'string' as NodePropertyTypes, + default: '', + + }, + { + displayName: 'Password', + name: 'password', + type: 'string' as NodePropertyTypes, + typeOptions: { + password: true, + }, + default: '', + }, + ]; +} diff --git a/packages/nodes-base/nodes/HttpRequest.node.ts b/packages/nodes-base/nodes/HttpRequest.node.ts index 542dd65f1c..1839b7cfb6 100644 --- a/packages/nodes-base/nodes/HttpRequest.node.ts +++ b/packages/nodes-base/nodes/HttpRequest.node.ts @@ -44,6 +44,17 @@ export class HttpRequest implements INodeType { }, }, }, + { + name: 'httpDigestAuth', + required: true, + displayOptions: { + show: { + authentication: [ + 'digestAuth', + ], + }, + }, + }, { name: 'httpHeaderAuth', required: true, @@ -66,6 +77,10 @@ export class HttpRequest implements INodeType { name: 'Basic Auth', value: 'basicAuth' }, + { + name: 'Digest Auth', + value: 'digestAuth' + }, { name: 'Header Auth', value: 'headerAuth' @@ -337,6 +352,7 @@ export class HttpRequest implements INodeType { const parametersAreJson = this.getNodeParameter('jsonParameters', 0) as boolean; const httpBasicAuth = this.getCredentials('httpBasicAuth'); + const httpDigestAuth = this.getCredentials('httpDigestAuth'); const httpHeaderAuth = this.getCredentials('httpHeaderAuth'); let url: string, responseFormat: string; @@ -428,6 +444,13 @@ export class HttpRequest implements INodeType { if (httpHeaderAuth !== undefined) { requestOptions.headers![httpHeaderAuth.name as string] = httpHeaderAuth.value; } + if (httpDigestAuth !== undefined) { + requestOptions.auth = { + user: httpDigestAuth.user as string, + pass: httpDigestAuth.password as string, + sendImmediately: false, + }; + } // Now that the options are all set make the actual http request const response = await this.helpers.request(requestOptions); diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 4d116355b1..2f28707bda 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -34,6 +34,7 @@ "dist/credentials/GithubApi.credentials.js", "dist/credentials/GoogleApi.credentials.js", "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", "dist/credentials/HttpHeaderAuth.credentials.js", "dist/credentials/Imap.credentials.js", "dist/credentials/LinkFishApi.credentials.js",