Преглед изворни кода

Merge pull request #3406 from weseek/imprv/5121-5125-adjust-validation-for-url

Imprv/5121 5125 adjust validation for url
Yuki Takei пре 5 година
родитељ
комит
b6c63ad359
2 измењених фајлова са 5 додато и 2 уклоњено
  1. 1 0
      CHANGES.md
  2. 4 2
      src/server/routes/apiv3/app-settings.js

+ 1 - 0
CHANGES.md

@@ -3,6 +3,7 @@
 ## v4.2.9-RC
 
 * Improvement: Add batchSize option for flow rate limit about stream 
+* Improvement: Even if slash is at the end, siteUrl is saved with it removed.
 
 ## v4.2.8
 

+ 4 - 2
src/server/routes/apiv3/app-settings.js

@@ -6,6 +6,7 @@ const debug = require('debug')('growi:routes:admin');
 
 const express = require('express');
 
+const { pathUtils } = require('growi-commons');
 const { listLocaleIds } = require('@commons/util/locale-utils');
 
 const router = express.Router();
@@ -156,7 +157,8 @@ module.exports = (crowi) => {
       body('fileUpload').isBoolean(),
     ],
     siteUrlSetting: [
-      body('siteUrl').trim().matches(/^(https?:\/\/[^/]+|)$/).isURL({ require_tld: false }),
+      // https://regex101.com/r/5Xef8V/1
+      body('siteUrl').trim().matches(/^(https?:\/\/)/).isURL({ require_tld: false }),
     ],
     mailSetting: [
       body('fromAddress').trim().if(value => value !== '').isEmail(),
@@ -334,7 +336,7 @@ module.exports = (crowi) => {
   router.put('/site-url-setting', loginRequiredStrictly, adminRequired, csrf, validator.siteUrlSetting, apiV3FormValidator, async(req, res) => {
 
     const requestSiteUrlSettingParams = {
-      'app:siteUrl': req.body.siteUrl,
+      'app:siteUrl': pathUtils.removeTrailingSlash(req.body.siteUrl),
     };
 
     try {