|
@@ -1,9 +1,6 @@
|
|
|
|
|
|
|
|
const express = require('express');
|
|
const express = require('express');
|
|
|
|
|
|
|
|
-// const crypto = require('crypto');
|
|
|
|
|
-// const qs = require('qs');
|
|
|
|
|
-
|
|
|
|
|
const loggerFactory = require('@alias/logger');
|
|
const loggerFactory = require('@alias/logger');
|
|
|
|
|
|
|
|
const logger = loggerFactory('growi:routes:apiv3:slack-bot');
|
|
const logger = loggerFactory('growi:routes:apiv3:slack-bot');
|
|
@@ -35,40 +32,6 @@ module.exports = (crowi) => {
|
|
|
return next();
|
|
return next();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * Verify if the request came from slack
|
|
|
|
|
- * See: https://api.slack.com/authentication/verifying-requests-from-slack
|
|
|
|
|
- */
|
|
|
|
|
- // TODO GW-5628 move this to slack package
|
|
|
|
|
- // function verifyingIsSlackRequest(req, res, next) {
|
|
|
|
|
- // // Temporary
|
|
|
|
|
- // req.signingSecret = crowi.configManager.getConfig('crowi', 'slackbot:signingSecret');
|
|
|
|
|
-
|
|
|
|
|
- // // take out slackSignature and timestamp from header
|
|
|
|
|
- // const slackSignature = req.headers['x-slack-signature'];
|
|
|
|
|
- // const timestamp = req.headers['x-slack-request-timestamp'];
|
|
|
|
|
-
|
|
|
|
|
- // // protect against replay attacks
|
|
|
|
|
- // const time = Math.floor(new Date().getTime() / 1000);
|
|
|
|
|
- // if (Math.abs(time - timestamp) > 300) {
|
|
|
|
|
- // return res.send('Verification failed.');
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // // generate growi signature
|
|
|
|
|
- // const sigBaseString = `v0:${timestamp}:${qs.stringify(req.body, { format: 'RFC1738' })}`;
|
|
|
|
|
- // const hasher = crypto.createHmac('sha256', req.signingSecret);
|
|
|
|
|
- // hasher.update(sigBaseString, 'utf8');
|
|
|
|
|
- // const hashedSigningSecret = hasher.digest('hex');
|
|
|
|
|
- // const growiSignature = `v0=${hashedSigningSecret}`;
|
|
|
|
|
-
|
|
|
|
|
- // // compare growiSignature and slackSignature
|
|
|
|
|
- // if (crypto.timingSafeEqual(Buffer.from(growiSignature, 'utf8'), Buffer.from(slackSignature, 'utf8'))) {
|
|
|
|
|
- // return next();
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // return res.send('Verification failed');
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
router.post('/', /* verificationRequestUrl, /* verificationAccessToken, */ async(req, res) => {
|
|
router.post('/', /* verificationRequestUrl, /* verificationAccessToken, */ async(req, res) => {
|
|
|
|
|
|
|
|
verifyingIsSlackRequest(req, res, crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'));
|
|
verifyingIsSlackRequest(req, res, crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'));
|