|
@@ -9,7 +9,6 @@ import {
|
|
|
generateUnavailableWhenMaintenanceModeMiddleware, generateUnavailableWhenMaintenanceModeMiddlewareForApi,
|
|
generateUnavailableWhenMaintenanceModeMiddleware, generateUnavailableWhenMaintenanceModeMiddlewareForApi,
|
|
|
} from '../middlewares/unavailable-when-maintenance-mode';
|
|
} from '../middlewares/unavailable-when-maintenance-mode';
|
|
|
|
|
|
|
|
-
|
|
|
|
|
import * as allInAppNotifications from './all-in-app-notifications';
|
|
import * as allInAppNotifications from './all-in-app-notifications';
|
|
|
import * as forgotPassword from './forgot-password';
|
|
import * as forgotPassword from './forgot-password';
|
|
|
import * as privateLegacyPages from './private-legacy-pages';
|
|
import * as privateLegacyPages from './private-legacy-pages';
|
|
@@ -31,6 +30,7 @@ module.exports = function(crowi, app) {
|
|
|
const certifySharedFile = require('../middlewares/certify-shared-file')(crowi);
|
|
const certifySharedFile = require('../middlewares/certify-shared-file')(crowi);
|
|
|
const csrf = require('../middlewares/csrf')(crowi);
|
|
const csrf = require('../middlewares/csrf')(crowi);
|
|
|
const injectUserUISettings = require('../middlewares/inject-user-ui-settings-to-localvars')();
|
|
const injectUserUISettings = require('../middlewares/inject-user-ui-settings-to-localvars')();
|
|
|
|
|
+ const apiRateLimiter = require('../middlewares/api-rate-limiter')();
|
|
|
|
|
|
|
|
const uploads = multer({ dest: `${crowi.tmpDir}uploads` });
|
|
const uploads = multer({ dest: `${crowi.tmpDir}uploads` });
|
|
|
const page = require('./page')(crowi, app);
|
|
const page = require('./page')(crowi, app);
|
|
@@ -63,6 +63,9 @@ module.exports = function(crowi, app) {
|
|
|
// API v3 for auth
|
|
// API v3 for auth
|
|
|
app.use('/_api/v3', apiV3AuthRouter);
|
|
app.use('/_api/v3', apiV3AuthRouter);
|
|
|
|
|
|
|
|
|
|
+ // API rate limiter
|
|
|
|
|
+ app.use(apiRateLimiter);
|
|
|
|
|
+
|
|
|
app.get('/' , applicationInstalled, unavailableWhenMaintenanceMode, loginRequired, autoReconnectToSearch, injectUserUISettings, page.showTopPage);
|
|
app.get('/' , applicationInstalled, unavailableWhenMaintenanceMode, loginRequired, autoReconnectToSearch, injectUserUISettings, page.showTopPage);
|
|
|
|
|
|
|
|
app.get('/login/error/:reason' , applicationInstalled, login.error);
|
|
app.get('/login/error/:reason' , applicationInstalled, login.error);
|