AXL Software

com.theorem.radserver3
Class ProxyImpl

Object
  extended byProxyImpl

public abstract class ProxyImpl
extends Object

Abstract class for implementing proxy server routing changes on the fly based on the packet attributes. This class also allows changing attributes on returning response packets as well.

Any changes made to the request attributes are returned through the response attribute using the PacketInfo.setResponseAttributes(AttributeList aList) method. If you do nothing and the original request attributes will be retained. Changes to the request attribute list must be sent with all unchanged request attributes through the ProxyInfo.setResponseAttributes() method.

For example if the User-Name and NAS-IP-Address arrived and the User-Name is modified both the changed User-Name and the unchanged NAS-IP-Address are given to the server using the ProxyInfo.setResponseAttributes() method.

ProxyImplFactory has an example of a simple routing change.

There is support for RFC 2607 (Proxy Chaining and Policy in Roaming) section 5.1 in the class ProxyInfo.

See Also:
ProxyImplFactory, setProxyStateObject(), getProxyStateObject()

Constructor Summary
ProxyImpl()
           
 
Method Summary
abstract  void changeRequest(ProxyInfo pi)
          Alter routing on an inbound packet by changing proxy information.
abstract  void changeResponse(ProxyInfo pi)
          Alter response packets.
abstract  void logs(LogImpl svrLog, LogImpl dbgLog)
          Connects the implementation to the server logs.
 
Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProxyImpl

public ProxyImpl()
Method Detail

changeRequest

public abstract void changeRequest(ProxyInfo pi)
                            throws AccessDropException,
                                   AccessRejectException
Alter routing on an inbound packet by changing proxy information. Called by the server access session to potentially change the proxy information on an access packet. Any attributes may be modified and new attributes added. Both the changed and unchanged attribute must be return through the PacketInfo.setResponseAttributes(AttributeList aList).

Proxy routing alterations are made to the User-Name attribute. This only affects Access-Request and Accounting-Request packets.

It's possible to change a routed packet to a local packet as well or 'transparently' affect routing without the modification of any attributes. For simple routing involving mappings of multiple realms to one realm please see ProxyTarget.setSynonyms(String[] realmList).

Responses will be automatically routed back to their destinations.

Parameters:
pi - ProxyInfo object.
Throws:
AccessDropException - to drop a packet.
AccessRejectException - to reject a packet.

changeResponse

public abstract void changeResponse(ProxyInfo pi)
                             throws AccessDropException,
                                    AccessRejectException
Alter response packets. Access-Accept packets that are returning from a proxy server may be examined and their attributes altered. It's possible to change a routed packet to a local packet as well. Both the changed and unchanged attribute must be return through the PacketInfo.setResponseAttributes(AttributeList aList).

Parameters:
pi - ProxyInfo object.
Throws:
AccessDropException - to drop a packet.
AccessRejectException - to reject a packet.

logs

public abstract void logs(LogImpl svrLog,
                          LogImpl dbgLog)
Connects the implementation to the server logs. The logging classes are made available to the implementation for reporting this and that. These classes are whatever the programmer defined them to be in the RADIUSServer class. This method will be called when each server is started.

Parameters:
svrLog - Server log class
dbgLog - Debug log class

AXL Software

Submit a bug report or feature request

Copyright 1998-2010 AXL Software PO Box 97, Viola, Delaware 19979, U.S.A. All Rights Reserved.