Răsfoiți Sursa

replace env for salt

Yuki Takei 4 ani în urmă
părinte
comite
59dc3e1a26

+ 0 - 2
packages/app/.env.development

@@ -22,7 +22,5 @@ HACKMD_URI_FOR_SERVER="http://hackmd:3000"
 # PROMSTER_ENABLED=true
 # SLACKBOT_WITHOUT_PROXY_SIGNING_SECRET=''
 # SLACKBOT_WITHOUT_PROXY_BOT_TOKEN=''
-SALT_FOR_GTOP_TOKEN="proxy"
-SALT_FOR_PTOG_TOKEN="growi"
 # GROWI_CLOUD_URI='http://growi.cloud'
 # GROWI_APP_ID_FOR_GROWI_CLOUD=012345

+ 13 - 3
packages/app/src/server/models/slack-app-integration.js

@@ -11,12 +11,17 @@ const schema = new mongoose.Schema({
 
 class SlackAppIntegration {
 
+  static setSalts(saltForGtoP, saltForPtoG) {
+    this.saltForGtoP = saltForGtoP;
+    this.saltForPtoG = saltForPtoG;
+  }
+
   static generateAccessTokens() {
     const now = new Date().getTime();
     const hasher1 = crypto.createHash('sha512');
     const hasher2 = crypto.createHash('sha512');
-    const tokenGtoP = hasher1.update(`gtop${now.toString()}${process.env.SALT_FOR_GTOP_TOKEN}`).digest('base64');
-    const tokenPtoG = hasher2.update(`ptog${now.toString()}${process.env.SALT_FOR_PTOG_TOKEN}`).digest('base64');
+    const tokenGtoP = hasher1.update(`gtop${now.toString()}${this.saltForGtoP}`).digest('base64');
+    const tokenPtoG = hasher2.update(`ptog${now.toString()}${this.saltForPtoG}`).digest('base64');
     return [tokenGtoP, tokenPtoG];
   }
 
@@ -41,7 +46,12 @@ class SlackAppIntegration {
 }
 
 module.exports = function(crowi) {
-  SlackAppIntegration.crowi = crowi;
+  // get salt strings
+  const saltForGtoP = crowi.configManager.getConfig('crowi', 'slackbot:withProxy:saltForGtoP');
+  const saltForPtoG = crowi.configManager.getConfig('crowi', 'slackbot:withProxy:saltForPtoG');
+
+  SlackAppIntegration.setSalts(saltForGtoP, saltForPtoG);
+
   schema.loadClass(SlackAppIntegration);
   return mongoose.model('SlackAppIntegration', schema);
 };

+ 12 - 0
packages/app/src/server/service/config-loader.ts

@@ -480,6 +480,18 @@ const ENV_VAR_NAME_TO_CONFIG_INFO = {
     type:    ValueType.STRING,
     default: null,
   },
+  SLACKBOT_WITH_PROXY_SALT_FOR_GTOP: {
+    ns:      'crowi',
+    key:     'slackbot:withProxy:saltForGtoP',
+    type:    ValueType.STRING,
+    default: 'gtop',
+  },
+  SLACKBOT_WITH_PROXY_SALT_FOR_PTOG: {
+    ns:      'crowi',
+    key:     'slackbot:withProxy:saltForPtoG',
+    type:    ValueType.STRING,
+    default: 'ptog',
+  },
 };