Skip to content

mattrobenolt/connect-access

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

connect-access

Access controls (ACLs) by location as a Connect middleware. Inspired by nginx's http_access_module.

Installation

$ npm install connect-access

Basic Usage

access(String path, Array rules)
var access = require('connect-access');

var rules = [
    '192.168.1.1',  // Allow 192.168.1.1
    '10.0.0.0/8',   // Allow entire 10.0.0.0/8 range
    '127.0.0.1',    // Allow localhost
    '-all',         // block everyone else
];

var app = connect()
  .use(access('/private/*', rules))  // Lock down all of /private/* to the ACLs we declared
  .use(function(req, res, next) {
    res.end('Hello world');
  });

ACLs

There are 2 ways to declare a list of acls.

  • Explicitly allow an IP/CIDR
  • Explicitly disallow an IP/CIDR

To allow or disallow, the ip rule is prefixed with a + or -. If no qualifier is specified, it's assumed to allow.

Rules are executed first to last and ends when the first rule is matched. If no match is found, assumes allow everything.

Example Rules

'all'          // Allow everything
'127.0.0.1'    // Allow just 127.0.0.1
'10.0.0.0/8'   // Allow a CIDR range
'-127.0.0.1'   // Disallow 127.0.0.1
'-10.0.0.0/8'  // Disallow a CIDR range
'-all'         // Disallow everything

About

Access controls (ACLs) by location as a Connect middleware

Resources

License

Stars

Watchers

Forks

Packages

No packages published