wac v0.0.1
Web Access Control implementation for Node.js
A stand-alone or express/connect Web Access Control implementation designed for Node.js with configurable graph callback.
See also:
Usage
Example code:
var fileCallbackOptions = {'baseUrl':'http://example.com','filename':'access.ttl'};
var accessControl = require('wac')({'graphCallback':wac.fileGraphCallback(fileCallbackOptions)});
accessControl.hasAccess('http://example.com/resource', 'GET', 'http://example.com/agent#me', null, callback);
This code creates an access control object using the rules defined in the turtle file 'access.ttl' with the base URL 'http://example.com'. The last line tests access for the resource 'http://example.com/resource' using HTTP method 'GET' for agent 'http://example.com/agent#me'.
Express middleware example code:
app.use(accessControl.middleware({}));
Uses express/connect middleware functionality of the previously created accessControl object.
wac options
cors (default: false)
Enables or disables cross-origin requests. If the application parameter is not null a cross-origin request is detected.
graph
A graph which contains the access control rules as RDF Interfaces: Graph. This option or the graphCallback option is required!
graphCallback
A callback function to fetch the graph which contains the access control rules as RDF Interfaces: Graph.
The function must accept two parameters:
resourceThe resource permission is requestedcallbackThe callback function which is called with the graph as single parameter
This option or the graph option is required!
wac.fileGraphCallback(options)
A graphCallback function for single file access control rules.
The following options are required:
baseUrlThe base URL for the Turtle filefilenameThe filename of the Turtle file
wac.directoryFileGraphCallback(options)
A graphCallbackfunction for per directory file access control rules.
The following options are required if there is no default:
basePathThe path to look at relative to the base URL (default: '')baseUrlThe URL for the parser relative to the base pathfilenameThe filename of the access control rule files (default: '.acl.ttl')
hasAccess(resource, method, agent, application, callback)
Stand-alone function to check whether a agent/application has access to a resource with the given method/mode.
The following parameters must be provided:
resourceURL of the resource to checkmethodHTTP method or WAC modeagentURL of the agentapplicationCORS hostcallbackThe callback function with a single boolean parameter
middleware(options)
Function to create a express/connect middleware.
The following options are available:
forbiddenA function to send the 403 forbidden response (default: send only 403 status code)
The req.absoluteUrl() function is required provided by the express-utils middleware.
12 years ago