Class RadiusPacket

java.lang.Object
ru.bitel.bgbilling.kernel.network.radius.RadiusAttributeSet
ru.bitel.bgbilling.kernel.network.radius.RadiusPacket
All Implemented Interfaces:
Cloneable

public class RadiusPacket extends RadiusAttributeSet
Радиус пакет. Этот класс расширяет набор атрибутов RadiusAttributeSet.
See Also:
  • Field Details

    • ACCESS_REQUEST

      public static final byte ACCESS_REQUEST
      See Also:
    • ACCESS_ACCEPT

      public static final byte ACCESS_ACCEPT
      See Also:
    • ACCESS_REJECT

      public static final byte ACCESS_REJECT
      See Also:
    • ACCOUNTING_REQUEST

      public static final byte ACCOUNTING_REQUEST
      See Also:
    • ACCOUNTING_RESPONSE

      public static final byte ACCOUNTING_RESPONSE
      See Also:
    • ACCOUNTING_STATUS

      public static final byte ACCOUNTING_STATUS
      See Also:
    • PASSWORD_REQUEST

      public static final byte PASSWORD_REQUEST
      See Also:
    • PASSWORD_ACCEPT

      public static final byte PASSWORD_ACCEPT
      See Also:
    • PASSWORD_REJECT

      public static final byte PASSWORD_REJECT
      See Also:
    • ACCOUNTING_MESSAGE

      public static final byte ACCOUNTING_MESSAGE
      See Also:
    • ACCESS_CHALLENGE

      public static final byte ACCESS_CHALLENGE
      See Also:
    • STATUS_SERVER

      public static final byte STATUS_SERVER
      See Also:
    • STATUS_CLIENT

      public static final byte STATUS_CLIENT
      See Also:
    • DISCONNECT_REQUEST

      public static final byte DISCONNECT_REQUEST
      See Also:
    • DISCONNECT_ACK

      public static final byte DISCONNECT_ACK
      See Also:
    • DISCONNECT_NAK

      public static final byte DISCONNECT_NAK
      See Also:
    • CoA_REQUEST

      public static final byte CoA_REQUEST
      See Also:
    • CoA_ACK

      public static final byte CoA_ACK
      See Also:
    • CoA_NAK

      public static final byte CoA_NAK
      See Also:
    • ACCOUNTING_STATUS_START

      public static final byte ACCOUNTING_STATUS_START
      See Also:
    • ACCOUNTING_STATUS_STOP

      public static final byte ACCOUNTING_STATUS_STOP
      See Also:
    • ACCOUNTING_STATUS_UPDATE

      public static final byte ACCOUNTING_STATUS_UPDATE
      See Also:
    • identifier

      public final byte identifier
      Идентификатор пакета.
    • requestAuthenticator

      protected final byte[] requestAuthenticator
      Для создаваемого ответа - это authenticator запроса.
    • authenticator

      protected byte[] authenticator
      Для пришедшего запроса это authenticator который хранится в запросе,
      для создаваемого запроса - null.
    • messageAuthenticator

      protected final byte[] messageAuthenticator
      Атрибут для подписи пакета RadiusDictionary.Message_Authenticator.
      Используется в EAP.
  • Constructor Details

    • RadiusPacket

      protected RadiusPacket(byte code, byte identifier, byte[] requestAuthenticator, byte[] authenticator, byte[] messageAuthenticator, Map<Integer,List<RadiusAttribute<?>>> standartAttributes, Map<Integer,Map<Integer,List<RadiusAttribute<?>>>> vendorAttributes, Map<String,Object> optionMap)
    • RadiusPacket

      public RadiusPacket(byte code, byte identifier)
      Создание радиус пакета (запрос).
      Parameters:
      code - - тип пакета (например, 0x28)
      identifier - - идентификатор пакета.
  • Method Details

    • getCode

      public byte getCode()
      Получение типа пакета (например, ACCESS_REQUEST ACCOUNTING_REQUEST).
      Returns:
    • setCode

      public void setCode(byte code)
      Установка типа пакета.
      Parameters:
      code -
    • isRequest

      public boolean isRequest()
    • write

      public void write(ByteBuffer bb, byte[] key) throws InvalidKeyException, NoSuchAlgorithmException
      Сериализация пакета в ByteBuffer.
      Parameters:
      bb - - буфер
      key - - секрет наса.
      Throws:
      InvalidKeyException
      NoSuchAlgorithmException
    • parse

      public static RadiusPacket parse(ByteBuffer bb) throws ru.bitel.bgbilling.common.BGException
      Парсинг пакета из ByteBuffer.
      Parameters:
      bb -
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • parse

      public static RadiusPacket parse(ByteBuffer byteBuffer, boolean move) throws ru.bitel.bgbilling.common.BGException
      Парсинг пакета из ByteBuffer.
      Parameters:
      byteBuffer -
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • createResponse

      public RadiusPacket createResponse()
      Создание пакета-ответа из пакета-запроса.
      Returns:
    • getOption

      public <O> O getOption(RadiusPacket.RadiusPacketOption<O> option)
      Получение опции(атрибута) из пакета. Если такая опция не была установлена - метод вернет null.
      Parameters:
      option -
      Returns:
      See Also:
    • getOption

      public <O> O getOption(RadiusPacket.RadiusPacketOption<O> option, O value)
      Получение опции(атрибута) из пакета. Если такая опция не была установлена - метод вернет value.
      Parameters:
      option -
      value - - значение по умолчанию
      Returns:
      See Also:
    • setOption

      public <O> void setOption(RadiusPacket.RadiusPacketOption<O> option, O value)
      Установка опции в пакет.
      Parameters:
      option -
      value -
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class RadiusAttributeSet
    • getPacketTypeString

      public String getPacketTypeString()
      Получение названия типа radius-пакета
      Returns:
      тип пакета
    • fromPacket

      public void fromPacket(RadiusPacket lastResponsePacket)
    • getTrace

      public Trace getTrace()
    • getOption

      @Deprecated public Object getOption(String option)
      Deprecated.
      Для обратной совместимости со скриптами
      Parameters:
      option -
      Returns:
    • setOption

      @Deprecated public void setOption(String option, Object value)
      Deprecated.
      Для обратной совместимости со скриптами
      Parameters:
      option -
      value -
    • clone

      public RadiusPacket clone()
      Overrides:
      clone in class Object
    • getAuthenticator

      public byte[] getAuthenticator()
    • addOptions

      public void addOptions(RadiusPacket request)