Skip to content

Commit 0b0f00b

Browse files
committed
Fix parsing of weird req.originalUrl values
closes #13
1 parent b292a56 commit 0b0f00b

File tree

4 files changed

+16
-3
lines changed

4 files changed

+16
-3
lines changed

History.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
unreleased
2+
==========
3+
4+
* Fix parsing of weird `req.originalUrl` values
5+
* deps: parseurl@~1.3.0
6+
17
1.5.0 / 2014-08-05
28
==================
39

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ exports = module.exports = function(root, options){
5050
return function staticMiddleware(req, res, next) {
5151
if ('GET' != req.method && 'HEAD' != req.method) return next();
5252
var opts = extend({}, options);
53-
var originalUrl = url.parse(req.originalUrl || req.url);
53+
var originalUrl = parseurl.original(req);
5454
var path = parseurl(req).pathname;
5555

5656
if (path === '/' && originalUrl.pathname[originalUrl.pathname.length - 1] !== '/') {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"repository": "expressjs/serve-static",
88
"dependencies": {
99
"escape-html": "1.0.1",
10-
"parseurl": "~1.2.0",
10+
"parseurl": "~1.3.0",
1111
"send": "0.8.1"
1212
},
1313
"devDependencies": {

test/test.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ describe('serveStatic()', function(){
471471
before(function () {
472472
server = createServer(fixtures, null, function (req) {
473473
req.originalUrl = req.url;
474-
req.url = '/' + req.url.split('/').slice(2).join('/');
474+
req.url = '/' + req.url.split('/').slice(3).join('/');
475475
});
476476
});
477477

@@ -481,6 +481,13 @@ describe('serveStatic()', function(){
481481
.expect('Location', '/static/users/')
482482
.expect(303, done);
483483
});
484+
485+
it('should not choke on auth-looking URL', function(done){
486+
request(server)
487+
.get('//todo@txt')
488+
.expect('Location', '//todo@txt/')
489+
.expect(303, done);
490+
});
484491
});
485492

486493
describe('when responding non-2xx or 304', function(){

0 commit comments

Comments
 (0)