1 changed files with 66 additions and 0 deletions
@ -0,0 +1,66 @@ |
|||
diff --git a/node_modules/@angular/common/esm2022/http/src/xsrf.mjs b/node_modules/@angular/common/esm2022/http/src/xsrf.mjs
|
|||
index da69c17..d17f6ad 100755
|
|||
--- a/node_modules/@angular/common/esm2022/http/src/xsrf.mjs
|
|||
+++ b/node_modules/@angular/common/esm2022/http/src/xsrf.mjs
|
|||
@@ -19,6 +19,10 @@ export const XSRF_HEADER_NAME = new InjectionToken(ngDevMode ? 'XSRF_HEADER_NAME
|
|||
providedIn: 'root', |
|||
factory: () => XSRF_DEFAULT_HEADER_NAME, |
|||
}); |
|||
+/**
|
|||
+ * Regex to match absolute URLs, including protocol-relative URLs.
|
|||
+ */
|
|||
+const ABSOLUTE_URL_REGEX = /^(?:https?:)?\/\//i;
|
|||
/** |
|||
* Retrieves the current XSRF token to use with the next outgoing request. |
|||
* |
|||
@@ -69,7 +73,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|||
args: [XSRF_COOKIE_NAME] |
|||
}] }] }); |
|||
export function xsrfInterceptorFn(req, next) { |
|||
- const lcUrl = req.url.toLowerCase();
|
|||
// Skip both non-mutating requests and absolute URLs. |
|||
// Non-mutating requests don't require a token, and absolute URLs require special handling |
|||
// anyway as the cookie set |
|||
@@ -77,8 +80,7 @@ export function xsrfInterceptorFn(req, next) {
|
|||
if (!inject(XSRF_ENABLED) || |
|||
req.method === 'GET' || |
|||
req.method === 'HEAD' || |
|||
- lcUrl.startsWith('http://') ||
|
|||
- lcUrl.startsWith('https://')) {
|
|||
+ ABSOLUTE_URL_REGEX.test(req.url)) {
|
|||
return next(req); |
|||
} |
|||
const token = inject(HttpXsrfTokenExtractor).getToken(); |
|||
diff --git a/node_modules/@angular/common/fesm2022/http.mjs b/node_modules/@angular/common/fesm2022/http.mjs
|
|||
index 1655480..d1dbb38 100755
|
|||
--- a/node_modules/@angular/common/fesm2022/http.mjs
|
|||
+++ b/node_modules/@angular/common/fesm2022/http.mjs
|
|||
@@ -2352,6 +2352,10 @@ const XSRF_HEADER_NAME = new InjectionToken(ngDevMode ? 'XSRF_HEADER_NAME' : '',
|
|||
providedIn: 'root', |
|||
factory: () => XSRF_DEFAULT_HEADER_NAME, |
|||
}); |
|||
+/**
|
|||
+ * Regex to match absolute URLs, including protocol-relative URLs.
|
|||
+ */
|
|||
+const ABSOLUTE_URL_REGEX = /^(?:https?:)?\/\//i;
|
|||
/** |
|||
* Retrieves the current XSRF token to use with the next outgoing request. |
|||
* |
|||
@@ -2402,7 +2406,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|||
args: [XSRF_COOKIE_NAME] |
|||
}] }] }); |
|||
function xsrfInterceptorFn(req, next) { |
|||
- const lcUrl = req.url.toLowerCase();
|
|||
// Skip both non-mutating requests and absolute URLs. |
|||
// Non-mutating requests don't require a token, and absolute URLs require special handling |
|||
// anyway as the cookie set |
|||
@@ -2410,8 +2413,7 @@ function xsrfInterceptorFn(req, next) {
|
|||
if (!inject(XSRF_ENABLED) || |
|||
req.method === 'GET' || |
|||
req.method === 'HEAD' || |
|||
- lcUrl.startsWith('http://') ||
|
|||
- lcUrl.startsWith('https://')) {
|
|||
+ ABSOLUTE_URL_REGEX.test(req.url)) {
|
|||
return next(req); |
|||
} |
|||
const token = inject(HttpXsrfTokenExtractor).getToken(); |
|||
Loading…
Reference in new issue