mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-09 11:28:18 +00:00
resolved error handling issue with requireAuth middleware
This commit is contained in:
@@ -166,7 +166,6 @@ const main = async () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// await createTestUserForDevelopment();
|
|
||||||
setUpHealthEndpoint(server);
|
setUpHealthEndpoint(server);
|
||||||
|
|
||||||
server.on("close", async () => {
|
server.on("close", async () => {
|
||||||
|
|||||||
@@ -45,55 +45,58 @@ const requireAuth = ({
|
|||||||
|
|
||||||
// validate auth token against accepted auth modes [acceptedAuthModes]
|
// validate auth token against accepted auth modes [acceptedAuthModes]
|
||||||
// and return token type [authTokenType] and value [authTokenValue]
|
// and return token type [authTokenType] and value [authTokenValue]
|
||||||
|
try {
|
||||||
|
const { authMode, authTokenValue } = validateAuthMode({
|
||||||
|
headers: req.headers,
|
||||||
|
acceptedAuthModes
|
||||||
|
});
|
||||||
|
|
||||||
const { authMode, authTokenValue } = validateAuthMode({
|
let authPayload: IUser | IServiceAccount | IServiceTokenData;
|
||||||
headers: req.headers,
|
switch (authMode) {
|
||||||
acceptedAuthModes
|
case AUTH_MODE_SERVICE_ACCOUNT:
|
||||||
});
|
authPayload = await getAuthSAAKPayload({
|
||||||
|
authTokenValue
|
||||||
|
});
|
||||||
|
req.serviceAccount = authPayload;
|
||||||
|
break;
|
||||||
|
case AUTH_MODE_SERVICE_TOKEN:
|
||||||
|
authPayload = await getAuthSTDPayload({
|
||||||
|
authTokenValue
|
||||||
|
});
|
||||||
|
req.serviceTokenData = authPayload;
|
||||||
|
break;
|
||||||
|
case AUTH_MODE_API_KEY:
|
||||||
|
authPayload = await getAuthAPIKeyPayload({
|
||||||
|
authTokenValue
|
||||||
|
});
|
||||||
|
req.user = authPayload;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
authPayload = await getAuthUserPayload({
|
||||||
|
authTokenValue
|
||||||
|
});
|
||||||
|
req.user = authPayload;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
let authPayload: IUser | IServiceAccount | IServiceTokenData;
|
req.requestData = {
|
||||||
switch (authMode) {
|
...req.params,
|
||||||
case AUTH_MODE_SERVICE_ACCOUNT:
|
...req.query,
|
||||||
authPayload = await getAuthSAAKPayload({
|
...req.body,
|
||||||
authTokenValue
|
}
|
||||||
});
|
|
||||||
req.serviceAccount = authPayload;
|
req.authData = {
|
||||||
break;
|
authMode,
|
||||||
case AUTH_MODE_SERVICE_TOKEN:
|
authPayload, // User, ServiceAccount, ServiceTokenData
|
||||||
authPayload = await getAuthSTDPayload({
|
authChannel: getChannelFromUserAgent(req.headers['user-agent']),
|
||||||
authTokenValue
|
authIP: req.ip,
|
||||||
});
|
authUserAgent: req.headers['user-agent'] ?? 'other'
|
||||||
req.serviceTokenData = authPayload;
|
}
|
||||||
break;
|
|
||||||
case AUTH_MODE_API_KEY:
|
return next();
|
||||||
authPayload = await getAuthAPIKeyPayload({
|
} catch (err) {
|
||||||
authTokenValue
|
return next(err);
|
||||||
});
|
|
||||||
req.user = authPayload;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
authPayload = await getAuthUserPayload({
|
|
||||||
authTokenValue
|
|
||||||
});
|
|
||||||
req.user = authPayload;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
req.requestData = {
|
|
||||||
...req.params,
|
|
||||||
...req.query,
|
|
||||||
...req.body,
|
|
||||||
}
|
|
||||||
|
|
||||||
req.authData = {
|
|
||||||
authMode,
|
|
||||||
authPayload, // User, ServiceAccount, ServiceTokenData
|
|
||||||
authChannel: getChannelFromUserAgent(req.headers['user-agent']),
|
|
||||||
authIP: req.ip,
|
|
||||||
authUserAgent: req.headers['user-agent'] ?? 'other'
|
|
||||||
}
|
|
||||||
|
|
||||||
return next();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import {
|
|||||||
getMongoURL,
|
getMongoURL,
|
||||||
getSentryDSN
|
getSentryDSN
|
||||||
} from '../../config';
|
} from '../../config';
|
||||||
|
import { initializePassport } from '../auth';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare Infisical upon startup. This includes tasks like:
|
* Prepare Infisical upon startup. This includes tasks like:
|
||||||
@@ -48,6 +49,7 @@ export const setup = async () => {
|
|||||||
|
|
||||||
// initializing the database connection
|
// initializing the database connection
|
||||||
await DatabaseService.initDatabase(await getMongoURL());
|
await DatabaseService.initDatabase(await getMongoURL());
|
||||||
|
await initializePassport();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NOTE: the order in this setup function is critical.
|
* NOTE: the order in this setup function is critical.
|
||||||
|
|||||||
Reference in New Issue
Block a user