Commit 5ea88fee authored by Ray Bellis's avatar Ray Bellis
Browse files

added README

parent aa1dd2f2
ISC RADIUS Framework
This package is a framework for writing RADIUS servers and for
implementing RADIUS clients in NodeJS.
It is not a full-featured server. Users of the framework must supply
business logic functions, e.g. to authenticate users or to save
accounting records, while the framework itself takes care of the
protocol implementation itself.
Framework users create business logic by registering callback functions
with this signature:
function handler(req, res)
* `req` is a read-only `RadiusPacket` object containing the
received RADIUS request
* `res` is a `RadiusPacket` object that may be modified (e.g.
by overriding the response code or by adding additional
For an example server, see `test-server.js`. This trivial server
accepts only one combination of valid username and password
(myuser/mypass) and will reject all others.
Callback functions are called _asynchronously_ and return a `Promise`.
If that Promise resolves to a "truthy" value the response is sent
immediately and no further handlers will be invoked. If the callback
function throws an exception (resulting in a rejected Promise) then
processing is aborted and no response is sent.
The default behaviour with no callbacks registered is:
- `Access-Request` packets generate `Access-Reject`
- `Accounting-Request` packets generating `Accounting-Response`
- `Server-Status` packets are not passed to the callbacks but are handled
internally within the framework. They generate either `Access-Accept`
or `Accounting-Response` depending upon which port the packet was
- All other packet types are ignored
The framework has support for making outbound RADIUS requests. This was
primarily added to support the case where the framework is being used to
act as a proxy between a client and another server, but it can also be
used to add RADIUS client support to any NodeJS application.
See `test-auth-node.js` and `test-acct-node.js` for examples.
RADIUS Dictionaries
The framework can read the dictionary files supplied with FreeRADIUS
3.x, but does not (yet) support the RADIUS Extensions described in RFC
6929. Dictionary entries using those extensions are ignored.
This software is provided free-of-charge and without warranty of any
kind. Issues may be reported on the project's ISC Gitlab page.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment