-独孤求败- 2022-03-24 14:27
浏览 18
已结题

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

请教什么愿意呢,急

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月1日
    • 创建了问题 3月24日

    悬赏问题

    • ¥15 ETLCloud 处理json多层级问题
    • ¥15 matlab中使用gurobi时报错
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示