diff --git a/packages/respect-core/src/modules/flow-runner/prepare-request.ts b/packages/respect-core/src/modules/flow-runner/prepare-request.ts index feaa9e18c4..ece9e6b56e 100644 --- a/packages/respect-core/src/modules/flow-runner/prepare-request.ts +++ b/packages/respect-core/src/modules/flow-runner/prepare-request.ts @@ -29,7 +29,7 @@ export type RequestData = { method: string; parameters: ParameterWithIn[]; requestBody: any; - openapiOperation?: OperationDetails & Record; + openapiOperation?: OperationDetails & { securitySchemes?: Record }; }; export async function prepareRequest( diff --git a/packages/respect-core/src/utils/api-fetcher.ts b/packages/respect-core/src/utils/api-fetcher.ts index ce61990dca..d4caee5516 100644 --- a/packages/respect-core/src/utils/api-fetcher.ts +++ b/packages/respect-core/src/utils/api-fetcher.ts @@ -278,12 +278,13 @@ export class ApiFetcher implements IFetcher { ...(step['x-security'] || []), ] .reverse() - .find( - (security) => - 'scheme' in security && - security.scheme?.type === 'http' && - security.scheme?.scheme === 'digest' - ); + .find((security) => { + const scheme = security.schemeName + ? openapiOperation?.securitySchemes?.[security.schemeName] + : security.scheme; + + return scheme?.type === 'http' && scheme?.scheme === 'digest'; + }); if (lastDigestSecurityScheme) { // FETCH WITH DIGEST AUTH