Web firewall middleware compatible with Express/Restify frameworks.
npm install --save webfirewallThe values on the params 'paths', 'ipAddresses', 'roles', 'origin' and 'users', can be regular expressions (RegExp). If strings, the comparison is done using the wildcard module.
constconfig={populationStrategy: 'restify',// supported values: express/restifydefaultAction: 'DROP',// supported values: ACCEPT/DROP getUserPhone: (req)=>Promise.resolve(req.user ? req.user.phone: null),// custom population strategy for user phone (optional)getUserEmail: (req)=>Promise.resolve(req.user ? req.user.email: null),// custom population strategy for user email (optional)getUserRoles: (req)=>Promise.resolve(req.user ? req.user.roles: null),// custom population strategy for user roles (optional)rules: [{methods: ['GET'],paths: ['/system/login'],ipAddresses: ['*'],// optionalroles: ['*'],// optionalorigin: ['*'],// optionalusers: ['*'],// optionalsecure: true,// optionalaction: 'ACCEPT',// supported values: ACCEPT/DROPhandler: (req)=>Promise.resolve(true)// optional},{methods: ['POST'],paths: ['/comments'],users: ['*'],secure: true,action: 'ACCEPT'},{methods: ['POST'],paths: ['/system/restart'],roles: ['ADMIN'],secure: true,action: 'ACCEPT'}]}constrestify=require('restify');constserver=restify.createServer({name: 'yourapp.com',version: ['1.0.0']});constfirewall=require('webfirewall');server.use(firewall({populationStrategy: 'restify',defaultAction: 'ACCEPT',rules: []}));JSON Web Token authentication is a great candidate to be used in collaboration with this module. This module is fully integrated with the com.kyberneees.auth.jwt module.