BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 03:53

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: BGB 5.2: вытаскиваем MAC
СообщениеДобавлено: 12 янв 2012, 15:43 
Не в сети

Зарегистрирован: 07 ноя 2009, 12:40
Сообщения: 41
Карма: 0
Копирайт: http://loctelecom.ru
Копирайт: http://dimonyga.ru

Класс: ru.locotelecom.bgbilling.modules.inet.dyn;

Код:
package ru.locotelecom.bgbilling.modules.inet.dyn;


import org.apache.log4j.Logger;
import java.util.List;
import bitel.billing.server.radius.RadiusStandartAttributes;
import ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute;
import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket;
import ru.bitel.bgbilling.kernel.network.radius.RadiusProtocolHandler;
import ru.bitel.bgbilling.modules.inet.dyn.device.radius.AbstractRadiusProtocolHandler;
import ru.bitel.common.sql.ConnectionSet;

public class DeviceProtoHandler
extends AbstractRadiusProtocolHandler
implements RadiusProtocolHandler
{   
   private static final Logger logger = Logger.getLogger( DeviceProtoHandler.class );
   
   private void setMAC( RadiusPacket request )
   {
      String prefix = "client-mac-address=";
      boolean flag=false;
      List<RadiusAttribute<?>> attributes = request.getAttributes(9,1);
      if( attributes != null )
      {
         for( RadiusAttribute<?> attr : attributes )
         {
              String value = ((RadiusAttribute<String>)attr).getValue();
             if( value.startsWith( prefix ) )
              {
                 request.setStringAttribute( RadiusStandartAttributes.Calling_Station_Id, value.replaceAll(prefix,"") );
               flag=true;
              }
         }
         if (!flag)
         {
            flag=true;
            logger.warn( "Not found 'client-mac-address=' prefix" );
         }   
      }
      if (!flag)
      {
         logger.warn( "Not found attributes" );
      }
   
   }   
   
   @Override
   public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
       throws Exception
   {
      super.preprocessAccessRequest( request, response, connectionSet );
      setMAC( request );
   }
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.151s | 20 Queries | GZIP : On ]