以2.2.3为基础,其它版本找到对应位置修改。
freeradius默认的逻辑不支持Access-Challenge,只在特定auth-type中Access-Challenge,在auth.c中 只对request->proxy_reply包进行处理,所以你在普通逻辑中如果想返回Access-Challenge必须增加逻辑:
jradius中:
RadiusPacket reply = new AccessChallenge();
reply.setIdentifier(rep.getIdentifier());
reply.addAttribute(new Attr_Prompt(Attr_Prompt.NoEcho));
reply.addAttribute(new Attr_ReplyMessage("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
reply.addAttribute(new Attr_State("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
jRequest.setReplyPacket(reply);
//这里为了防止freeradius中增加逻辑的负作用(防止其它逻辑走进来),可以加其它不常用的Attribute作为条件
jRequest.setReturnValu