ru.bitel.bgbilling.modules.inet.radius

## Interface RadiusAccessRequestHandler

-     public interface RadiusAccessRequestHandler

  Данный интерфейс может имлиментировать Обработчик активации сервисов. В случае имплементации особое внимание уделить методу `#addResponseAttributes(ServerContext, InetServType, InetServ, RadiusAttributeSet, String, Map, RadiusAttributeSet, Set)`, он должен либо возвращать false, либо заменять стандарнтую логику выдачи атрибутов.
  Author:
    amir

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addResponseAttributes(ru.bitel.bgbilling.kernel.container.managed.ServerContext context, InetServType inetServType, InetServ inetServ, RadiusPacket response, java.lang.String realm, java.util.Map<java.lang.String,RadiusAttributeSet> realmAttributeMap, RadiusAttributeSet inetServAttributes, java.util.Set<java.lang.Integer> inetOptionSet)` В данном методе можно заменить стандартную логику выдачи атрибутов.
    `void` | `afterAuthorization(ru.bitel.bgbilling.kernel.container.managed.ServerContext conext, RadiusListenerWorker<InetNas> req, RadiusSession<InetNas,InetRadiusSessionParams> radiusSession, RadiusPacket request, RadiusPacket response)` После авторизации.
    `void` | `beforeAuthentication(ru.bitel.bgbilling.kernel.container.managed.ServerContext context, RadiusListenerWorker<InetNas> req, RadiusSession<InetNas,InetRadiusSessionParams> radiusSession, RadiusPacket request, RadiusPacket response)` Перед аутентификацией.

- - ### Method Detail

    - #### beforeAuthentication

          void beforeAuthentication(ru.bitel.bgbilling.kernel.container.managed.ServerContext context,
                                    RadiusListenerWorker<InetNas> req,
                                    RadiusSession<InetNas,InetRadiusSessionParams> radiusSession,
                                    RadiusPacket request,
                                    RadiusPacket response)
                             throws java.lang.Exception

      Перед аутентификацией. Данный метод, в отличие от `RadiusProtocolHandler.preprocessAccessRequest(RadiusPacket, RadiusPacket, ru.bitel.common.sql.ConnectionSet)`, который может вызываться несколько раз для каждого Access-Request в одной RADIUS-сессии (например, при EAP), вызывается только один раз, перед реальной внутренней аутентификацией.
      Parameters:
        `context` -
        `session` -
        `req` -
        `request` -
        `response` -
      Throws:
        `java.lang.Exception`

    - #### afterAuthorization

          void afterAuthorization(ru.bitel.bgbilling.kernel.container.managed.ServerContext conext,
                                  RadiusListenerWorker<InetNas> req,
                                  RadiusSession<InetNas,InetRadiusSessionParams> radiusSession,
                                  RadiusPacket request,
                                  RadiusPacket response)
                           throws java.lang.Exception

      После авторизации.
      Parameters:
        `conext` -
        `req` -
        `radiusSession` -
        `request` -
        `response` -
      Throws:
        `java.lang.Exception`

    - #### addResponseAttributes

          boolean addResponseAttributes(ru.bitel.bgbilling.kernel.container.managed.ServerContext context,
                                        InetServType inetServType,
                                        InetServ inetServ,
                                        RadiusPacket response,
                                        java.lang.String realm,
                                        java.util.Map<java.lang.String,RadiusAttributeSet> realmAttributeMap,
                                        RadiusAttributeSet inetServAttributes,
                                        java.util.Set<java.lang.Integer> inetOptionSet)
                                 throws java.lang.Exception

      В данном методе можно заменить стандартную логику выдачи атрибутов. Будьте осторожны.
      Parameters:
        `context` -
        `inetServType` -
        `inetServ` -
        `response` -
        `realm` -
        `realmAttributeMap` -
        `inetServAttributes` -
        `optionSet` -
      Returns:
        true - если все атрибуты выданы в этом методе, т.е. добавлять атрибуты логикой по умолчанию не нужно, false - чтобы сработала логика выдачи атрибутов по умолчанию.
      Throws:
        `java.lang.Exception`
      See Also:
        `RadiusAccessRequestHandler`