mirror of
https://github.com/zebrajr/express.git
synced 2025-12-06 00:19:48 +01:00
parent
d40dc651f3
commit
eabd4564aa
|
|
@ -1,3 +1,8 @@
|
|||
unreleased
|
||||
==========
|
||||
|
||||
* Fix handling of URLs containing `://` in the path
|
||||
|
||||
4.10.0 / 2014-10-23
|
||||
===================
|
||||
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ proto.handle = function(req, res, done) {
|
|||
|
||||
var search = 1 + req.url.indexOf('?');
|
||||
var pathlength = search ? search - 1 : req.url.length;
|
||||
var fqdn = 1 + req.url.substr(0, pathlength).indexOf('://');
|
||||
var fqdn = req.url[0] !== '/' && 1 + req.url.substr(0, pathlength).indexOf('://');
|
||||
var protohost = fqdn ? req.url.substr(0, req.url.indexOf('/', 2 + fqdn)) : '';
|
||||
var idx = 0;
|
||||
var removed = '';
|
||||
|
|
|
|||
|
|
@ -219,6 +219,23 @@ describe('Router', function(){
|
|||
});
|
||||
});
|
||||
|
||||
it('should ignore FQDN in path', function (done) {
|
||||
var request = { hit: 0, url: '/proxy/http://example.com/blog/post/1', method: 'GET' };
|
||||
var router = new Router();
|
||||
|
||||
router.use('/proxy', function (req, res, next) {
|
||||
assert.equal(req.hit++, 0);
|
||||
assert.equal(req.url, '/http://example.com/blog/post/1');
|
||||
next();
|
||||
});
|
||||
|
||||
router.handle(request, {}, function (err) {
|
||||
if (err) return done(err);
|
||||
assert.equal(request.hit, 1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should adjust FQDN req.url', function (done) {
|
||||
var request = { hit: 0, url: 'http://example.com/blog/post/1', method: 'GET' };
|
||||
var router = new Router();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user