Skip to content

Commit 7307367

Browse files
imyllerFishrock123
authored andcommitted
url: keep auth in url.resolve() if host matches
Fixes: nodejs#8165 PR-URL: nodejs#8215 Reviewed-By: James M Snell <[email protected]>
1 parent 13da7f1 commit 7307367

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lib/url.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -775,13 +775,13 @@ Url.prototype.resolveObject = function(relative) {
775775
if (isRelAbs) {
776776
// it's absolute.
777777
if (relative.host || relative.host === '') {
778+
if (result.host !== relative.host) result.auth = null;
778779
result.host = relative.host;
779780
result.port = relative.port;
780-
result.auth = null;
781781
}
782782
if (relative.hostname || relative.hostname === '') {
783+
if (result.hostname !== relative.hostname) result.auth = null;
783784
result.hostname = relative.hostname;
784-
result.auth = null;
785785
}
786786
result.search = relative.search;
787787
result.query = relative.query;

test/parallel/test-url.js

+3
Original file line numberDiff line numberDiff line change
@@ -1571,6 +1571,9 @@ var relativeTests2 = [
15711571
['mailto:another.host.com',
15721572
15731573
'mailto:another.host.com'],
1574+
['https://example.com/foo',
1575+
'https://user:[email protected]',
1576+
'https://user:[email protected]/foo'],
15741577
];
15751578
relativeTests2.forEach(function(relativeTest) {
15761579
const a = url.resolve(relativeTest[1], relativeTest[0]);

0 commit comments

Comments
 (0)