Merge pull request #4502 from Infisical/improve-lockout

feat(ua-login): improve lock error message & disable lock when lockout is disabled
This commit is contained in:
x032205
2025-09-08 20:42:10 -04:00
committed by GitHub
@@ -84,7 +84,8 @@ export const identityUaServiceFactory = ({
const LOCKOUT_KEY = `lockout:identity:${identityUa.identityId}:${IdentityAuthMethod.UNIVERSAL_AUTH}:${clientId}`; const LOCKOUT_KEY = `lockout:identity:${identityUa.identityId}:${IdentityAuthMethod.UNIVERSAL_AUTH}:${clientId}`;
let lock: Awaited<ReturnType<typeof keyStore.acquireLock>>; let lock: Awaited<ReturnType<typeof keyStore.acquireLock>> | undefined;
if (identityUa.lockoutEnabled) {
try { try {
lock = await keyStore.acquireLock([KeyStorePrefixes.IdentityLockoutLock(LOCKOUT_KEY)], 500, { lock = await keyStore.acquireLock([KeyStorePrefixes.IdentityLockoutLock(LOCKOUT_KEY)], 500, {
retryCount: 3, retryCount: 3,
@@ -95,7 +96,8 @@ export const identityUaServiceFactory = ({
logger.info( logger.info(
`identity login failed to acquire lock [identityId=${identityUa.identityId}] [authMethod=${IdentityAuthMethod.UNIVERSAL_AUTH}]` `identity login failed to acquire lock [identityId=${identityUa.identityId}] [authMethod=${IdentityAuthMethod.UNIVERSAL_AUTH}]`
); );
throw new RateLimitError({ message: "Rate limit exceeded" }); throw new RateLimitError({ message: "Failed to acquire lock: rate limit exceeded" });
}
} }
try { try {
@@ -257,7 +259,7 @@ export const identityUaServiceFactory = ({
...accessTokenTTLParams ...accessTokenTTLParams
}; };
} finally { } finally {
await lock.release(); if (lock) await lock.release();
} }
}; };