anafay / radius-server
Implementation of RADIUS server: both authorization and accounting (RFC 2865, 2866, 2867)
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/anafay/radius-server
Requires
- react/datagram: ^1.5
- react/event-loop: ^1.1
This package is not auto-updated.
Last update: 2025-10-01 11:03:07 UTC
README
Implementation of RADIUS server: both authorization and accounting (RFC 2865, 2866, 2867).
Usage
RADIUS server class:
class RadiusServer implements RadiusServerInterface { public function onAccessRequest(IncomingMessage $message) { if(check($message)){ $message->replyAccept() ->addAttribute(Message::ATTR_FRAMED_IP_ADDRESS, '192.168.0.1') ->addAttribute(Message::ATTR_SESSION_TIMEOUT,180) ->send(); }else{ $message->replyReject() ->addAttribute(Message::ATTR_REPLY_MESSAGE,'Restricted') ->send(); } } public function onAccountingStart(IncomingMessage $message, Session $session) { $this->log($session,'start'); } public function onAccountingStop(IncomingMessage $message, Session $session) { $this->log($session,'stop'); $this->save($session); } public function onInterimUpdate(IncomingMessage $message, Session $session) { $this->log($session,'interim'); } .... }
ReactPHP application:
$loop = React\EventLoop\Factory::create(); $radius = new Factory(new RadiusServer(),'secret'); $radius->listen($loop,'10.1.0.1'); $loop->run();
Requirements
The library requires PHP>=7.0 and ReactPHP (event-loop>=1.1, datagram>=1.5).