aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Bennett <hello@vantezzen.io>2020-03-10 15:35:30 +0100
committerLibravatar Bennett <hello@vantezzen.io>2020-03-10 15:35:30 +0100
commita26ea3004f5a308c65305a4c8eecbe0fafd5d30d (patch)
treee2533375d655ce1d44bd91ea5aa530862c9683d3
parentBump version number (diff)
downloadferdium-server-a26ea3004f5a308c65305a4c8eecbe0fafd5d30d.tar.gz
ferdium-server-a26ea3004f5a308c65305a4c8eecbe0fafd5d30d.tar.zst
ferdium-server-a26ea3004f5a308c65305a4c8eecbe0fafd5d30d.zip
#12 Handle multiple slashes in path
-rw-r--r--app/Middleware/HandleDoubleSlash.js26
-rw-r--r--start/kernel.js1
2 files changed, 27 insertions, 0 deletions
diff --git a/app/Middleware/HandleDoubleSlash.js b/app/Middleware/HandleDoubleSlash.js
new file mode 100644
index 0000000..94f4fe8
--- /dev/null
+++ b/app/Middleware/HandleDoubleSlash.js
@@ -0,0 +1,26 @@
1'use strict'
2/** @typedef {import('@adonisjs/framework/src/Request')} Request */
3/** @typedef {import('@adonisjs/framework/src/Response')} Response */
4/** @typedef {import('@adonisjs/framework/src/View')} View */
5
6class HandleDoubleSlash {
7 /**
8 * @param {object} ctx
9 * @param {Request} ctx.request
10 * @param {Function} next
11 */
12 async handle ({ request, response }, next) {
13 console.log(request.url());
14
15 // Redirect requests that contain duplicate slashes to the right path
16 if (request.url().includes('//')) {
17 return response.redirect(
18 request.url().replace(/\/{2,}/g, '/'),
19 );
20 }
21
22 await next();
23 }
24}
25
26module.exports = HandleDoubleSlash
diff --git a/start/kernel.js b/start/kernel.js
index b54fc29..077151a 100644
--- a/start/kernel.js
+++ b/start/kernel.js
@@ -54,6 +54,7 @@ const namedMiddleware = {
54const serverMiddleware = [ 54const serverMiddleware = [
55 'Adonis/Middleware/Static', 55 'Adonis/Middleware/Static',
56 'Adonis/Middleware/Cors', 56 'Adonis/Middleware/Cors',
57 'App/Middleware/HandleDoubleSlash',
57]; 58];
58 59
59Server 60Server