Как выяснилось радиус пакте приходит с полем calling_station_id в octets и мы получаем данную ошибку.
если в файле directory.xml заменить string на octets то в логах появляется другая ошибка
RadiusListenerWorker - [B cannot be cast to java.lang.String
Код:
java.lang.ClassCastException: [B cannot be cast to java.lang.String
at ru.bitel.bgbilling.kernel.network.radius.RadiusAttributeSet.getStringAttribute(RadiusAttributeSet.java:380)
at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1508)
at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1326)
at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:383)
at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:501)
at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:445)
at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:151)
at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
В модуле DialUp был скрипт который нормально отрабатывал
Код:
callingStationId = request.getAttribute( -1, RadiusDictionary.Calling_Station_Id );
request.setStringAttribute( -1, RadiusDictionary.Calling_Station_Id, Utils.bytesToHexString( callingStationId.getDataAsByteArray() ) );
Но вот такой же код ничего не изменяет также появляются вышеуказанные ошибки
Код:
@Override
public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
throws Exception
{
RadiusAttribute CallingStationId = request.getAttribute( -1, RadiusDictionary.Calling_Station_Id );
request.setStringAttribute( -1, RadiusDictionary.Calling_Station_Id, Utils.bytesToHexString( CallingStationId.getDataAsByteArray() ) );
}
@Override
public void preprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
throws Exception
{
RadiusAttribute CallingStationId = request.getAttribute( -1, RadiusDictionary.Calling_Station_Id );
request.setStringAttribute( -1, RadiusDictionary.Calling_Station_Id, Utils.bytesToHexString( CallingStationId.getDataAsByteArray() ) );
}
Что не так не пойму.