boo/radius

A PHP RADIUS client implementation

dev-master / 1.x-dev 2018-06-21 15:39 UTC

This package is auto-updated.

Last update: 2024-06-16 07:16:33 UTC


README

RADIUS Client (PHP implementation)

Source Code Latest Version Software License Build Status Coverage Status Total Downloads

boo/radius is a PHP 5.5+ RADIUS client implementation.

Installation

The preferred method of installation is via Packagist and Composer. Run the following command to install the package and add it as a requirement to your project's composer.json:

composer require boo/radius

Usage

<?php

use Boo\Radius\Client;
use Boo\Radius\Packet;
use Boo\Radius\PacketType;

$client = new Client('udp://127.0.0.1:1812', /* timeout */ 2);
$response = $client->send(new Packet(PacketType::ACCESS_REQUEST(), /* secret */ 'xyzzy5461', [
    'User-Name' => 'nemo',
    'User-Password' => 'arctangent',
]));

if ($response->getType() !== PacketType::ACCESS_ACCEPT()) {
    throw new \RuntimeException('Unable to authenticate as user "nemo"');
}

Dictionary

The following RADIUS dictionaries are supported out-of-the-box:

  • MikroTik
  • RFC 2865
  • RFC 2866
  • RFC 2867
  • RFC 2868
  • RFC 2869
  • RFC 3162
  • RFC 3576
  • RFC 3580
  • RFC 4072
  • RFC 4372
  • RFC 4603
  • RFC 4675
  • RFC 4679
  • RFC 4818
  • RFC 4849
  • RFC 5090
  • RFC 5176

Custom Dictionary

Additional attributes can be registered by creating a custom dictionary class that implements Boo\Radius\DictionaryInterface.

Copyright and License

The boo/radius library is copyright © Jonas Stendahl and licensed for use under the MIT License (MIT). Please see LICENSE for more information.