@absolutejs/auth 0.59.2 → 0.59.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export declare const isSafeLocalPath: (value: string) => boolean;
2
+ export declare const toSafeLocalPath: (value: string | undefined, fallback?: string) => string;
package/dist/server.js CHANGED
@@ -11271,6 +11271,12 @@ var resolveProviderClientConfiguration = ({
11271
11271
  // src/routes/authorize.ts
11272
11272
  init_constants();
11273
11273
  import { Elysia as Elysia27, t as t20 } from "elysia";
11274
+
11275
+ // src/redirect.ts
11276
+ var isSafeLocalPath = (value) => /^\/(?![/\\])/.test(value);
11277
+ var toSafeLocalPath = (value, fallback = "/") => value !== undefined && isSafeLocalPath(value) ? value : fallback;
11278
+
11279
+ // src/routes/authorize.ts
11274
11280
  var parseReferer = (headerReferer) => {
11275
11281
  if (!headerReferer)
11276
11282
  return "/";
@@ -11278,10 +11284,7 @@ var parseReferer = (headerReferer) => {
11278
11284
  const url = new URL(headerReferer);
11279
11285
  return url.pathname + url.search;
11280
11286
  } catch {
11281
- if (headerReferer.startsWith("/") && !headerReferer.startsWith("//")) {
11282
- return headerReferer;
11283
- }
11284
- return "/";
11287
+ return toSafeLocalPath(headerReferer);
11285
11288
  }
11286
11289
  };
11287
11290
  var authorize = ({
@@ -12958,7 +12961,7 @@ var parseReferer2 = (referer) => {
12958
12961
  const url = new URL(referer);
12959
12962
  return url.pathname + url.search;
12960
12963
  } catch {
12961
- return referer.startsWith("/") && !referer.startsWith("//") ? referer : "/";
12964
+ return toSafeLocalPath(referer);
12962
12965
  }
12963
12966
  };
12964
12967
  var oidcSsoRoutes = ({
@@ -13101,18 +13104,13 @@ var oidcSsoRoutes = ({
13101
13104
 
13102
13105
  // src/sso/samlRoutes.ts
13103
13106
  import { Elysia as Elysia39, t as t31 } from "elysia";
13104
- var toLocalPath = (value) => {
13105
- if (value === undefined || value.length === 0)
13106
- return "/";
13107
- return value.startsWith("/") && !value.startsWith("//") ? value : "/";
13108
- };
13109
13107
  var refererPath = (referer) => {
13110
13108
  if (referer === undefined)
13111
13109
  return "/";
13112
13110
  try {
13113
- return toLocalPath(new URL(referer).pathname);
13111
+ return toSafeLocalPath(new URL(referer).pathname);
13114
13112
  } catch {
13115
- return toLocalPath(referer);
13113
+ return toSafeLocalPath(referer);
13116
13114
  }
13117
13115
  };
13118
13116
  var settle = async (work) => {
@@ -13215,7 +13213,7 @@ var samlSsoRoutes = ({
13215
13213
  user,
13216
13214
  userSessionId
13217
13215
  });
13218
- return redirect(toLocalPath(body.RelayState));
13216
+ return redirect(toSafeLocalPath(body.RelayState));
13219
13217
  } catch (error) {
13220
13218
  await onSsoCallbackError?.({ error, organizationId });
13221
13219
  return status("Internal Server Error", "SAML sign-in failed");
@@ -13306,7 +13304,7 @@ var samlSsoRoutes = ({
13306
13304
  sloUrl
13307
13305
  }) ?? Promise.resolve());
13308
13306
  if (!("error" in responseSettled)) {
13309
- return redirect(toLocalPath(RelayState));
13307
+ return redirect(toSafeLocalPath(RelayState));
13310
13308
  }
13311
13309
  await onSsoCallbackError?.({
13312
13310
  error: responseSettled.error,
@@ -13354,7 +13352,7 @@ var samlSsoRoutes = ({
13354
13352
  });
13355
13353
  return redirect(url);
13356
13354
  }
13357
- return redirect(toLocalPath(info.relayState ?? RelayState));
13355
+ return redirect(toSafeLocalPath(info.relayState ?? RelayState));
13358
13356
  }, {
13359
13357
  cookie: t31.Cookie({
13360
13358
  user_session_id: t31.Optional(userSessionIdTypebox)
@@ -38708,5 +38706,5 @@ export {
38708
38706
  VerificationProviderError
38709
38707
  };
38710
38708
 
38711
- //# debugId=82A372899BEA4F4564756E2164756E21
38709
+ //# debugId=D7D259888A27730164756E2164756E21
38712
38710
  //# sourceMappingURL=server.js.map