mirror of
https://github.com/fosrl/pangolin.git
synced 2026-10-28 06:29:06 +01:00
Include the resource in the cache
This commit is contained in:
@@ -720,7 +720,7 @@ export async function verifyResourceSession(
|
||||
);
|
||||
|
||||
if (resourceSessionToken) {
|
||||
const sessionCacheKey = `session:${resourceSessionToken}`;
|
||||
const sessionCacheKey = `session:${resource.resourceId}:${resourceSessionToken}`;
|
||||
let resourceSession: ResourceSession | null | undefined =
|
||||
localCache.get(sessionCacheKey);
|
||||
|
||||
@@ -736,6 +736,14 @@ export async function verifyResourceSession(
|
||||
}
|
||||
}
|
||||
|
||||
// sessions are scoped to a single resource; never honor one issued for another
|
||||
if (
|
||||
resourceSession &&
|
||||
resourceSession.resourceId !== resource.resourceId
|
||||
) {
|
||||
resourceSession = null;
|
||||
}
|
||||
|
||||
if (resourceSession?.isRequestToken) {
|
||||
logger.debug(
|
||||
"Resource not allowed because session is a temporary request token"
|
||||
@@ -1245,7 +1253,7 @@ async function allowAccessToken(
|
||||
);
|
||||
|
||||
if (resourceSessionToken) {
|
||||
const sessionCacheKey = `session:${resourceSessionToken}`;
|
||||
const sessionCacheKey = `session:${resource.resourceId}:${resourceSessionToken}`;
|
||||
let resourceSession: ResourceSession | null | undefined =
|
||||
localCache.get(sessionCacheKey);
|
||||
|
||||
@@ -1262,6 +1270,7 @@ async function allowAccessToken(
|
||||
|
||||
if (
|
||||
resourceSession &&
|
||||
resourceSession.resourceId === resource.resourceId &&
|
||||
!resourceSession.isRequestToken &&
|
||||
resourceSession.accessTokenId === tokenItem.accessTokenId
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user