diff --git a/lib/auth/Vault.ts b/lib/auth/Vault.ts index 471904849..71024a682 100644 --- a/lib/auth/Vault.ts +++ b/lib/auth/Vault.ts @@ -66,14 +66,14 @@ export type AuthV2RequestParams = { version: 2; log: RequestLogger; data: { - securityToken: string; accessKey: string; - signatureFromRequest: string; - stringToSign: string; algo: string; authType: 'query' | 'header' | 'REST-HEADER' | 'REST-QUERY-STRING'; - signatureVersion: string; + securityToken: string; signatureAge?: number; + signatureFromRequest: string; + signatureVersion: string; + stringToSign: string; }; }; @@ -85,7 +85,6 @@ export type AuthV4RequestParams = { algo?: string; authType?: 'query' | 'header' | 'REST-HEADER' | 'REST-QUERY-STRING'; credentialScope?: string; - log: RequestLogger; region: string; scopeDate: string; securityToken?: string; @@ -94,7 +93,7 @@ export type AuthV4RequestParams = { signatureAge?: number; signatureFromRequest: string; stringToSign: string; - timestamp: number; + timestamp?: string; }; }; @@ -141,7 +140,7 @@ export default class Vault { */ authenticateV2Request( params: AuthV2RequestParams, - requestContexts: any[], + requestContexts: any[] | null, callback: (err: Error | null, data?: any) => void ) { params.log.debug('authenticating V2 request'); diff --git a/lib/auth/auth.ts b/lib/auth/auth.ts index d4c8be8da..c926545f1 100644 --- a/lib/auth/auth.ts +++ b/lib/auth/auth.ts @@ -1,5 +1,5 @@ import * as crypto from 'crypto'; -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import errors, { ArsenalError } from '../errors'; import * as queryString from 'querystring'; import AuthInfo from './AuthInfo'; @@ -61,7 +61,7 @@ function setAuthHandler(handler: Vault) { */ function extractParams( request: any, - log: Logger, + log: RequestLogger, awsService: string, data: { [key: string]: string } ): AuthResult { @@ -121,7 +121,7 @@ function extractParams( */ function doAuth( request: any, - log: Logger, + log: RequestLogger, cb: (err: Error | null, data?: any) => void, awsService: string, requestContexts: any[] | null, diff --git a/lib/auth/v2/checkRequestExpiry.ts b/lib/auth/v2/checkRequestExpiry.ts index 72db9be45..b00b8c340 100644 --- a/lib/auth/v2/checkRequestExpiry.ts +++ b/lib/auth/v2/checkRequestExpiry.ts @@ -1,9 +1,9 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import errors from '../../errors'; const epochTime = new Date('1970-01-01').getTime(); -export default function checkRequestExpiry(timestamp: number, log: Logger) { +export default function checkRequestExpiry(timestamp: number, log: RequestLogger) { // If timestamp is before epochTime, the request is invalid and return // errors.AccessDenied if (timestamp < epochTime) { diff --git a/lib/auth/v2/constructStringToSign.ts b/lib/auth/v2/constructStringToSign.ts index eb60d02dd..b93dd688d 100644 --- a/lib/auth/v2/constructStringToSign.ts +++ b/lib/auth/v2/constructStringToSign.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import utf8 from 'utf8'; import getCanonicalizedAmzHeaders from './getCanonicalizedAmzHeaders'; import getCanonicalizedResource from './getCanonicalizedResource'; @@ -6,8 +6,8 @@ import getCanonicalizedResource from './getCanonicalizedResource'; export default function constructStringToSign( request: any, data: { [key: string]: string }, - log: Logger, - clientType?: any + log: RequestLogger, + clientType?: any, ) { /* Build signature per AWS requirements: diff --git a/lib/auth/v2/headerAuthCheck.ts b/lib/auth/v2/headerAuthCheck.ts index 5fb51841c..093fbf8df 100644 --- a/lib/auth/v2/headerAuthCheck.ts +++ b/lib/auth/v2/headerAuthCheck.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import errors from '../../errors'; import * as constants from '../../constants'; import constructStringToSign from './constructStringToSign'; @@ -9,7 +9,7 @@ import { AuthResult } from '../auth'; export function check( request: any, - log: Logger, + log: RequestLogger, data: { [key: string]: string }, ): AuthResult { log.trace('running header auth check'); diff --git a/lib/auth/v2/queryAuthCheck.ts b/lib/auth/v2/queryAuthCheck.ts index 4fce57b2c..6d6a6988e 100644 --- a/lib/auth/v2/queryAuthCheck.ts +++ b/lib/auth/v2/queryAuthCheck.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import errors from '../../errors'; import * as constants from '../../constants'; import algoCheck from './algoCheck'; @@ -12,7 +12,7 @@ export const PRE_SIGN_URL_EXPIRY = process.env.PRE_SIGN_URL_EXPIRY ? export function check( request: any, - log: Logger, + log: RequestLogger, data: { [key: string]: string }, ): AuthResult { log.trace('running query auth check'); diff --git a/lib/auth/v4/constructStringToSign.ts b/lib/auth/v4/constructStringToSign.ts index 045e3aaad..ad623e693 100644 --- a/lib/auth/v4/constructStringToSign.ts +++ b/lib/auth/v4/constructStringToSign.ts @@ -1,5 +1,5 @@ import * as crypto from 'crypto'; -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import createCanonicalRequest from './createCanonicalRequest'; /** @@ -14,7 +14,7 @@ export default function constructStringToSign(params: { credentialScope: string; timestamp: string; query: { [key: string]: string }; - log?: Logger; + log?: RequestLogger; proxyPath?: string; awsService: string; }): string { diff --git a/lib/auth/v4/headerAuthCheck.ts b/lib/auth/v4/headerAuthCheck.ts index 69cde4039..b308a53e6 100644 --- a/lib/auth/v4/headerAuthCheck.ts +++ b/lib/auth/v4/headerAuthCheck.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import errors, { ArsenalError } from '../../../lib/errors'; import * as constants from '../../constants'; import constructStringToSign from './constructStringToSign'; @@ -25,7 +25,7 @@ import { AuthResult } from '../auth'; */ export function check( request: any, - log: Logger, + log: RequestLogger, data: { [key: string]: string }, awsService: string ): AuthResult { diff --git a/lib/auth/v4/queryAuthCheck.ts b/lib/auth/v4/queryAuthCheck.ts index 2fe346d52..73246bdea 100644 --- a/lib/auth/v4/queryAuthCheck.ts +++ b/lib/auth/v4/queryAuthCheck.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import * as constants from '../../constants'; import errors, { ArsenalError } from '../../errors'; import constructStringToSign from './constructStringToSign'; @@ -16,7 +16,7 @@ import { AuthResult } from '../auth'; */ export function check( request: any, - log: Logger, + log: RequestLogger, data: { [key: string]: string }, ): AuthResult { const authParams = extractQueryParams(data, log); diff --git a/lib/auth/v4/timeUtils.ts b/lib/auth/v4/timeUtils.ts index 646887d77..170df0529 100644 --- a/lib/auth/v4/timeUtils.ts +++ b/lib/auth/v4/timeUtils.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; /** * Convert timestamp to milliseconds since Unix Epoch @@ -34,7 +34,7 @@ export function convertUTCtoISO8601(timestamp: string | number) { * @param log - log for request * @return true if there is a time problem */ -export function checkTimeSkew(timestamp: string, expiry: number, log: Logger) { +export function checkTimeSkew(timestamp: string, expiry: number, log: RequestLogger) { const currentTime = Date.now(); const fifteenMinutes = (15 * 60 * 1000); const parsedTimestamp = convertAmzTimeToMs(timestamp); diff --git a/lib/auth/v4/validateInputs.ts b/lib/auth/v4/validateInputs.ts index c3611111f..8df22f5c5 100644 --- a/lib/auth/v4/validateInputs.ts +++ b/lib/auth/v4/validateInputs.ts @@ -1,4 +1,4 @@ -import { Logger } from 'werelogs'; +import { RequestLogger } from 'werelogs'; import errors, { ArsenalError } from '../../../lib/errors'; /** @@ -12,7 +12,7 @@ import errors, { ArsenalError } from '../../../lib/errors'; export function validateCredentials( credentials: [string, string, string, string, string], timestamp: string, - log: Logger + log: RequestLogger, ): ArsenalError | {} { if (!Array.isArray(credentials) || credentials.length !== 5) { log.warn('credentials in improper format', { credentials }); @@ -66,7 +66,7 @@ export function validateCredentials( */ export function extractQueryParams( queryObj: { [key: string]: string | undefined }, - log: Logger + log: RequestLogger, ) { const authParams: { signedHeaders?: string; @@ -137,7 +137,7 @@ export function extractQueryParams( * @param log - logging object * @return object containing extracted auth header items for authV4 */ -export function extractAuthItems(authHeader: string, log: Logger) { +export function extractAuthItems(authHeader: string, log: RequestLogger) { const authItems: { credentialsArr?: [string, string, string, string, string]; signedHeaders?: string;