Skip to content

Instantly share code, notes, and snippets.

@marcgreenstock
Created March 11, 2014 11:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcgreenstock/9484273 to your computer and use it in GitHub Desktop.
Save marcgreenstock/9484273 to your computer and use it in GitHub Desktop.
var radius = require('radius');
var dgram = require("dgram");
var secret = 'radius_secret';
var server1 = dgram.createSocket("udp4");
var server2 = dgram.createSocket("udp4");
var onMessage = function(msg, rinfo) {
var code, username, password, packet;
packet = radius.decode({packet: msg, secret: secret});
if (packet.code != 'Access-Request') {
console.log('unknown packet type: ', packet.code);
return;
}
username = packet.attributes['User-Name'];
password = packet.attributes['User-Password'];
console.log('Access-Request for ' + username);
if (username == 'jlpicard' && password == 'beverly123') {
code = 'Access-Accept';
} else {
code = 'Access-Reject';
}
var response = radius.encode_response({
packet: packet,
code: code,
secret: secret
});
console.log('Sending ' + code + ' for user ' + username);
this.send(response, 0, response.length, rinfo.port, rinfo.address, function(err, bytes) {
if (err) {
console.log('Error sending response to ', rinfo);
}
});
}
var onListen = function () {
var address = this.address();
console.log("radius server listening " + address.address + ":" + address.port);
}
server1.on("message", onMessage);
server2.on("message", onMessage);
server1.on("listening", onListen);
server2.on("listening", onListen);
server1.bind(1812);
server2.bind(1813);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment