Add security check (#7247)
* added Parse Server security option * added SecurityRouter * added Check class * added CheckGroup class * moved parameter validation to Utils * added CheckRunner class * added auto-run on server start * added custom security checks as Parse Server option * renamed script to check * reformat log output * added server config check * improved contributing guideline * improved contribution guide * added check security log * improved log format * added checks * fixed log fomat typo * added database checks * fixed database check * removed database auth check in initial version * improved contribution guide * added security check tests * fixed typo * improved wording guidelines * improved wording guidelines
This commit is contained in:
31
src/Routers/SecurityRouter.js
Normal file
31
src/Routers/SecurityRouter.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import * as middleware from '../middlewares';
|
||||
import CheckRunner from '../Security/CheckRunner';
|
||||
|
||||
export class SecurityRouter extends PromiseRouter {
|
||||
mountRoutes() {
|
||||
this.route('GET', '/security',
|
||||
middleware.promiseEnforceMasterKeyAccess,
|
||||
this._enforceSecurityCheckEnabled,
|
||||
async (req) => {
|
||||
const report = await new CheckRunner(req.config.security).run();
|
||||
return {
|
||||
status: 200,
|
||||
response: report,
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
async _enforceSecurityCheckEnabled(req) {
|
||||
const config = req.config;
|
||||
if (!config.security || !config.security.enableCheck) {
|
||||
const error = new Error();
|
||||
error.status = 409;
|
||||
error.message = 'Enable Parse Server option `security.enableCheck` to run security check.';
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default SecurityRouter;
|
||||
Reference in New Issue
Block a user