mina 监听udp包实现radius pap认证问题,详细请看

使用mina监听1812和1813端口实现radius pap认证计费,出现了计费请求走到了认证处理类的情况

/**
 * Radius 认证服务配置
 */
@Bean( destroyMethod = "unbind")
public NioDatagramAcceptor nioAuthAcceptor(RadiusAuthHandlerMina radiusAuthHandler) throws IOException {
    if(!authEnabled){
        logger.info("====== RadiusAuthServer not running =======");
        return null;
    }
    NioDatagramAcceptor nioAuthAcceptor = new NioDatagramAcceptor();
    nioAuthAcceptor.setDefaultLocalAddress(new InetSocketAddress(1812));
    DatagramSessionConfig dcfg = nioAuthAcceptor.getSessionConfig();
    dcfg.setReceiveBufferSize(1024);
    dcfg.setSendBufferSize(1024);
    dcfg.setReadBufferSize(1024);
    dcfg.setBothIdleTime(0);
    dcfg.setReuseAddress(false);
    Executor threadPool = Executors.newFixedThreadPool(1500);//建立线程池
    nioAuthAcceptor.getFilterChain().addLast("threadPool", new ExecutorFilter(threadPool));
    nioAuthAcceptor.getFilterChain().addLast("logger", new LoggingFilter());
    nioAuthAcceptor.setHandler(radiusAuthHandler);
    nioAuthAcceptor.bind();
    logger.info(String.format("====== RadiusAuthServer listen %s ======", 1812));
    return nioAuthAcceptor;
}

/**
 * Radius 记账服务配置
 */
@Bean(destroyMethod = "unbind")
public NioDatagramAcceptor nioAcctAcceptor(RadiusAcctHandlerMina radiusAcctHandler) throws IOException {
    if(!acctEnabled){
        logger.info("====== RadiusAcctServer not running ======");
        return null;
    }
    NioDatagramAcceptor nioAcctAcceptor = new NioDatagramAcceptor();
    nioAcctAcceptor.setDefaultLocalAddress(new InetSocketAddress(1813));
    DatagramSessionConfig dcfg = nioAcctAcceptor.getSessionConfig();
    dcfg.setReceiveBufferSize(1024);
    dcfg.setSendBufferSize(1024);
    dcfg.setReadBufferSize(1024);
    dcfg.setBothIdleTime(0);
    dcfg.setReuseAddress(false);
    Executor threadPool = Executors.newFixedThreadPool(1500);//建立线程池
    nioAcctAcceptor.getFilterChain().addLast("threadPool", new ExecutorFilter(threadPool));
    nioAcctAcceptor.getFilterChain().addLast("logger", new LoggingFilter());
    nioAcctAcceptor.setHandler(radiusAcctHandler);
    nioAcctAcceptor.bind();
    logger.info(String.format("====== RadiusAcctServer listen %s ======", 1813));
    return nioAcctAcceptor;
}

radiusAuthHandler 为认证处理类
radiusAcctHandler 为计费处理类
当收到认证请求Access-request时候 进入到radiusAuthHandler 处理类,并且进行响应,紧接着会收到交换机的accounting-request 此时的数据报文被radiusAuthHandler 接收到了,并没有被radiusAcctHandler接收到
但是,使用工具单发accounting-request报文时候,会进入到radiusAcctHandler处理类,只有在先认证再计费时候,计费报文会走到radiusAuthHandler

请教什么愿意呢,急