Class RadiusPacket

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

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

    • ACCESS_REQUEST

      public static final byte ACCESS_REQUEST
      See Also:
      Constant Field Values
    • ACCESS_ACCEPT

      public static final byte ACCESS_ACCEPT
      See Also:
      Constant Field Values
    • ACCESS_REJECT

      public static final byte ACCESS_REJECT
      See Also:
      Constant Field Values
    • ACCOUNTING_REQUEST

      public static final byte ACCOUNTING_REQUEST
      See Also:
      Constant Field Values
    • ACCOUNTING_RESPONSE

      public static final byte ACCOUNTING_RESPONSE
      See Also:
      Constant Field Values
    • ACCOUNTING_STATUS

      public static final byte ACCOUNTING_STATUS
      See Also:
      Constant Field Values
    • PASSWORD_REQUEST

      public static final byte PASSWORD_REQUEST
      See Also:
      Constant Field Values
    • PASSWORD_ACCEPT

      public static final byte PASSWORD_ACCEPT
      See Also:
      Constant Field Values
    • PASSWORD_REJECT

      public static final byte PASSWORD_REJECT
      See Also:
      Constant Field Values
    • ACCOUNTING_MESSAGE

      public static final byte ACCOUNTING_MESSAGE
      See Also:
      Constant Field Values
    • ACCESS_CHALLENGE

      public static final byte ACCESS_CHALLENGE
      See Also:
      Constant Field Values
    • STATUS_SERVER

      public static final byte STATUS_SERVER
      See Also:
      Constant Field Values
    • STATUS_CLIENT

      public static final byte STATUS_CLIENT
      See Also:
      Constant Field Values
    • DISCONNECT_REQUEST

      public static final byte DISCONNECT_REQUEST
      See Also:
      Constant Field Values
    • DISCONNECT_ACK

      public static final byte DISCONNECT_ACK
      See Also:
      Constant Field Values
    • DISCONNECT_NAK

      public static final byte DISCONNECT_NAK
      See Also:
      Constant Field Values
    • CoA_REQUEST

      public static final byte CoA_REQUEST
      See Also:
      Constant Field Values
    • CoA_ACK

      public static final byte CoA_ACK
      See Also:
      Constant Field Values
    • CoA_NAK

      public static final byte CoA_NAK
      See Also:
      Constant Field Values
    • ACCOUNTING_STATUS_START

      public static final byte ACCOUNTING_STATUS_START
      See Also:
      Constant Field Values
    • ACCOUNTING_STATUS_STOP

      public static final byte ACCOUNTING_STATUS_STOP
      See Also:
      Constant Field Values
    • ACCOUNTING_STATUS_UPDATE

      public static final byte ACCOUNTING_STATUS_UPDATE
      See Also:
      Constant Field Values
    • 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, java.util.Map<java.lang.Integer,​java.util.List<RadiusAttribute<?>>> standartAttributes, java.util.Map<java.lang.Integer,​java.util.Map<java.lang.Integer,​java.util.List<RadiusAttribute<?>>>> vendorAttributes, java.util.Map<java.lang.String,​java.lang.Object> optionMap)
    • RadiusPacket

      public RadiusPacket​(byte code, byte identifier)
      Создание радиус пакета (запрос).
      Parameters:
      code - - тип пакета (например, 40)
      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​(java.nio.ByteBuffer bb, byte[] key) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
      Сериализация пакета в ByteBuffer.
      Parameters:
      bb - - буфер
      key - - секрет наса.
      Throws:
      java.security.InvalidKeyException
      java.security.NoSuchAlgorithmException
    • parse

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

      public static RadiusPacket parse​(java.nio.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.
      Type Parameters:
      O -
      Parameters:
      option -
      Returns:
    • getOption

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

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

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

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

      public void fromPacket​(RadiusPacket lastResponsePacket)
    • getTrace

      public Trace getTrace()
    • getOption

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

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

      @Deprecated public void setFlag​(int flag)
      Deprecated.
      Для обратной совместимости со скриптами
      Parameters:
      flag -
    • getFlag

      @Deprecated public int getFlag()
      Deprecated.
      Для обратной совместимости со скриптами
      Returns:
    • setPacketType

      @Deprecated public void setPacketType​(byte value)
      Deprecated.
      Parameters:
      value -
    • addAttribute

      @Deprecated public void addAttribute​(bitel.billing.server.radius.RadiusAttribute ra)
    • setVendorAttribute

      @Deprecated public void setVendorAttribute​(bitel.billing.server.radius.RadiusVendorAttribute rva)
    • addVendorAttribute

      @Deprecated public void addVendorAttribute​(bitel.billing.server.radius.RadiusVendorAttribute rva)
    • addVendorAttributes

      @Deprecated public void addVendorAttributes​(java.util.List<bitel.billing.server.radius.RadiusVendorAttribute> attrs)
    • addAttributes

      @Deprecated public void addAttributes​(java.util.List<bitel.billing.server.radius.RadiusAttribute> attrs)
    • setStringAttribute

      @Deprecated public void setStringAttribute​(int code, java.lang.String value)
    • setIntAttribute

      @Deprecated public void setIntAttribute​(int code, int value)
    • setByteAttribute

      @Deprecated public void setByteAttribute​(int code, byte[] value)
    • getByteAttribute

      @Deprecated public byte[] getByteAttribute​(int code)
    • getStringAttribute

      @Deprecated public java.lang.String getStringAttribute​(int code)
    • getIntAttribute

      @Deprecated public int getIntAttribute​(int code)
      Deprecated.
      use #getIntAttribute(int, int, int)
    • getVendorStringAttribute

      @Deprecated public java.lang.String getVendorStringAttribute​(int code)
    • getVendorIntAttribute

      @Deprecated public int getVendorIntAttribute​(int code)
      Deprecated.
      use #getIntAttribute(int, int, int)
    • getVendorAttributes

      @Deprecated public java.util.List<RadiusAttribute<?>> getVendorAttributes​(int vendor, int code)
    • getVendorAttributes

      @Deprecated public java.util.List<RadiusAttribute<?>> getVendorAttributes​(int vendor)
      Deprecated.
      Не понятно для чего мог использоваться данный метод.
      Оставлен для обратной совместимости, возвращает все атрибуты всех типов для указанного вендора.
      Parameters:
      vendor -
      Returns:
    • getPacketType

      @Deprecated public int getPacketType()
      Deprecated.
      Оставлен для обратной совместимости, возвращает тип пакета (code)
      Returns:
    • getPacketId

      @Deprecated public byte getPacketId()
      Deprecated.
      Оставлен для обратной совместимости, возвращает идентификатор пакета (identifier)
      Returns:
    • clone

      public RadiusPacket clone()
      Overrides:
      clone in class java.lang.Object
    • getAuthenticatorBytes

      @Deprecated public byte[] getAuthenticatorBytes()
      Deprecated.
    • getAuthenticator

      public byte[] getAuthenticator()
    • addOptions

      public void addOptions​(RadiusPacket request)