Skip to content

globalreachtech/tinyradius-netty

Repository files navigation

TinyRadius-Netty

Gradle Build Maintainability Coveralls Quality Gate Status Known Vulnerabilities

Maven Central javadoc

TinyRadius-Netty is a Java Radius library, loosely based off the TinyRadius Radius library, rebuilt with Java 8 and Netty patterns/features.

Features

  • Sends/receives Radius packets
  • Signs and verifies Request Authenticator for Access and Accounting requests/responses
  • Supports verifying and encoding for PAP, CHAP, and EAP (Message-Authenticator)
  • Attach arbitrary attributes to packets
  • Loads dictionaries recursively from file system or classpath (Radiator/FreeRadius format)

Improvements over TinyRadius

  • Netty for async IO, timeouts, thread management
  • Handlers follow Netty's interceptor filter pattern, blocking calls use promises
  • log4j2 instead of commons-logging
  • Java 6-11 features (generics, NIO, lambdas, streams)
  • Packets and Attributes are fully immutable
  • 80%+ test coverage
  • Proxy no longer a separate implementation, but a promise-based adapter between the client and server classes

Usage

See the e2e tests on usage as Client/Server/Proxy.

Maintainers

Set credentials for signing and Nexus in ~/.gradle/gradle.properties:

signing.keyId=3D6EA292
signing.password=******
signing.secretKeyRingFile=C:\\Users\\user1\\secring.gpg

sonatypeUsername=myUser
sonatypePassword=***************

Push to staging repository (manually verify/release via Nexus UI):

./gradlew publishToSonatype closeSonatypeStagingRepository

Publish directly to Maven Central:

./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository

License

Copyright Matthias Wuttke and contributors:

Licensed under LGPL 2.1