|
@@ -11,12 +11,17 @@ const schema = new mongoose.Schema({
|
|
|
|
|
|
|
|
class SlackAppIntegration {
|
|
class SlackAppIntegration {
|
|
|
|
|
|
|
|
|
|
+ static setSalts(saltForGtoP, saltForPtoG) {
|
|
|
|
|
+ this.saltForGtoP = saltForGtoP;
|
|
|
|
|
+ this.saltForPtoG = saltForPtoG;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
static generateAccessTokens() {
|
|
static generateAccessTokens() {
|
|
|
const now = new Date().getTime();
|
|
const now = new Date().getTime();
|
|
|
const hasher1 = crypto.createHash('sha512');
|
|
const hasher1 = crypto.createHash('sha512');
|
|
|
const hasher2 = 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];
|
|
return [tokenGtoP, tokenPtoG];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -41,7 +46,12 @@ class SlackAppIntegration {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module.exports = function(crowi) {
|
|
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);
|
|
schema.loadClass(SlackAppIntegration);
|
|
|
return mongoose.model('SlackAppIntegration', schema);
|
|
return mongoose.model('SlackAppIntegration', schema);
|
|
|
};
|
|
};
|