rlm_jradius JRadius is a Java RADIUS client and server framework. As a client, it provides a pure Java interface. When ran as a (pure Java) server, JRadius listens for requests from the rlm_jradius module running in FreeRADIUS. The module sends JRadius the RADIUS request, reply, and the internal FreeRADIUS 'config_items' attribute list and returns the same after processing. Configuring rlm_jradius for use with a running JRadius server starts with the module definition, in jradius.conf, as follows: jradius { name = "example" # Name of the JRadius Application # (known as "Sender" in JRadius) primary = "127.0.0.1" # Primary JRadius Server # (using default port of 1814) secondary = "192.168.1.2:1815" # Secondary JRadius Server (port 1815) tertiary = "192.168.1.2:1816" # Tertiary JRadius Server timeout = 1 # JRadius Server Connect Timeout (default 5) onfail = NOOP # What to do if no JRadius # Server is found. Options are: # FAIL (default), OK, REJECT, NOOP keepalive = yes # Keep connections to JRadius pooled connections = 8 # Number of pooled JRadius connections allow_codechange = yes # Allow the changing the RADIUS code/type allow_idchange = yes # Allow the change of the RADIUS pkt id } The 'name' can be used in the JRadius server to define a specific logic "chain" of handlers. Three JRadius servers can be defined for redundancy - making it easier to upgrade JRadius and its handlers. It is recommended to run the FreeRADIUS module in 'keepalive' mode whereby connections to JRadius are pool, similar to the rlm_sql module. The jradius.conf configuration file then needs to be included into the radiusd.conf modules block, for instance: modules { ... $INCLUDE ${confdir}/jradius.conf } And the 'jradius' module must be added to the appropriate handler blocks, commonly: authorize { ... jradius } preacct { ... jradius } accounting { ... jradius } ...and so on... JRadius Quick-start: Starting JRadius server: wget http://jradius.net/dist/jradius-current.zip unzip jradius-current.zip cd jradius sh jradius.sh Running the JRadius Simulator: sh jRadiusSimulator.sh Using RadClient: echo "User-Name = test" > radius.pkt echo "User-Password = test" >> radius.pkt sh radclient.sh localhost testing123 radius.pkt To build a new jradius-dictionary.jar for your specific FreeRADIUS dictionary, see the ant's build.xml or maven's dictionary/pom.xml in the source svn. JRadius does have some Vendor Specific Attributes; see dictionary.jradius and ensure it is included in your main dictionary file. For more information, see http://jradius.net/