本文整理汇总了Java中net.jradius.packet.RadiusPacket.overwriteAttribute方法的典型用法代码示例。如果您正苦于以下问题:Java RadiusPacket.overwriteAttribute方法的具体用法?Java RadiusPacket.overwriteAttribute怎么用?Java RadiusPacket.overwriteAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.jradius.packet.RadiusPacket
的用法示例。
在下文中一共展示了RadiusPacket.overwriteAttribute方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handle
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
public boolean handle(JRadiusRequest request) throws Exception
{
JRadiusSession session = request.getSession();
if (session == null) return noSessionFound(request);
// System.err.println(this.getClass().getName());
RadiusPacket req = request.getRequestPacket();
byte[] packetClass = (byte[])req.getAttributeValue(Attr_Class.TYPE);
byte[][] sessionClass = session.getRadiusClass();
if (packetClass != null || sessionClass != null)
{
if (sessionClass == null)
{
session.addLogMessage(request, "Request has Class attribute when it should not");
}
else
{
session.addLogMessage(request, "Missing Class Attribute (added)");
req.removeAttribute(Attr_Class.TYPE);
for (byte[] a : sessionClass) {
req.addAttribute(AttributeFactory.newAttribute(Attr_Class.TYPE, a, req.isRecyclable()));
}
}
}
if (req instanceof AccessRequest)
{
byte[] sessionState = session.getRadiusState();
if (sessionState != null)
{
// System.out.println("Missing State Attribute (added) "+sessionState.length+" "+sessionState[0]);
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_State.TYPE, sessionState, req.isRecyclable()));
}
}
return false;
}
示例2: handle
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
public boolean handle(JRadiusRequest request) throws RadiusException
{
RadiusPacket req = request.getRequestPacket();
AttributeList ci = request.getConfigItems();
JRadiusSession session = request.getSession();
if (session == null) return false;
String proxyToRealm = session.getProxyToRealm();
if (proxyToRealm != null)
{
/*
* If this session was the result of a terminated EAP Tunnel,
* then proxy accounting to the home realm after adjusting
* the User-Name to that in the EAP Tunnel.
*/
RadiusAttribute a;
if ((a = req.findAttribute(Attr_StrippedUserName.TYPE)) != null) req.removeAttribute(a);
if ((a = req.findAttribute(Attr_Realm.TYPE)) != null) req.removeAttribute(a);
req.overwriteAttribute(new Attr_UserName(session.getUsername() + "@" + session.getRealm()));
ci.add(new Attr_ProxyToRealm(proxyToRealm));
request.setReturnValue(JRadiusServer.RLM_MODULE_UPDATED);
return true;
}
return false;
}
示例3: handle
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
public boolean handle(JRadiusRequest request) throws RadiusException
{
JRadiusSession session = request.getSession();
if (session == null) return noSessionFound(request);
RadiusPacket rep = request.getReplyPacket();
if (!(rep instanceof AccessAccept ||
rep instanceof AccessChallenge)) return false;
Object[] attrs = rep.findAttributes(Attr_Class.TYPE);
if (attrs != null && session.getRadiusClass() == null)
{
byte[][] classes = new byte[attrs.length][];
for (int i = 0; i < attrs.length; i++)
{
RadiusAttribute attribute = (RadiusAttribute) attrs[i];
classes[i] = (byte[]) attribute.getValue().getValueObject();
}
// System.err.println(this.getClass().getName() + " setting radiusClass");
session.setRadiusClass(classes);
}
RadiusAttribute attr = rep.findAttribute(Attr_State.TYPE);
if (attr != null)
{
byte[] val = (byte[]) attr.getValue().getValueObject();
// System.err.println(this.getClass().getName() + " setting radiusState "+val.length+" "+val[0]);
session.setRadiusState(val);
}
rep.overwriteAttribute(AttributeFactory.newAttribute(rep instanceof AccessAccept ? Attr_Class.TYPE : Attr_State.TYPE,
(ClassPrefix + session.getSessionKey()).getBytes(), rep.isRecyclable()));
return false;
}
示例4: reverseAccounting
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
protected void reverseAccounting(RadiusPacket req) throws RadiusException
{
Long octetsIn = (Long)req.getAttributeValue(Attr_AcctInputOctets.TYPE);
Long octetsOut = (Long)req.getAttributeValue(Attr_AcctOutputOctets.TYPE);
Long gigaIn = (Long)req.getAttributeValue(Attr_AcctInputGigawords.TYPE);
Long gigaOut = (Long)req.getAttributeValue(Attr_AcctOutputGigawords.TYPE);
Long packetsIn = (Long)req.getAttributeValue(Attr_AcctInputPackets.TYPE);
Long packetsOut = (Long)req.getAttributeValue(Attr_AcctOutputPackets.TYPE);
if (octetsIn != null && octetsOut != null)
{
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_AcctInputOctets.TYPE, octetsOut, req.isRecyclable()));
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_AcctOutputOctets.TYPE, octetsIn, req.isRecyclable()));
}
if (gigaIn != null && gigaOut != null)
{
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_AcctInputGigawords.TYPE, gigaOut, req.isRecyclable()));
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_AcctOutputGigawords.TYPE, gigaIn, req.isRecyclable()));
}
if (packetsIn != null && packetsOut != null)
{
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_AcctInputPackets.TYPE, packetsOut, req.isRecyclable()));
req.overwriteAttribute(AttributeFactory.newAttribute(Attr_AcctOutputPackets.TYPE, packetsIn, req.isRecyclable()));
}
}
示例5: processRequest
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
/**
* @see net.jradius.client.auth.RadiusAuthenticator#processRequest(net.jradius.packet.RadiusPacket)
*/
public void processRequest(RadiusPacket p) throws RadiusException
{
p.removeAttribute(AttributeDictionary.USER_PASSWORD);
RadiusAttribute a = AttributeFactory.newAttribute(AttributeDictionary.EAP_MESSAGE,
isStartWithIdentity() ? eapResponse(EAP_IDENTITY, (byte)0, getUsername()) : null, p.isRecyclable());
p.overwriteAttribute(a);
}
示例6: processChallenge
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
/**
* If the protocol has a request/challenge process, this function must
* be implemented.
* @param request The original AccessRequest RadiusPacket
* @param challenge The AccessChallenge packet
* @throws RadiusException
* @throws NoSuchAlgorithmException
*/
public void processChallenge(RadiusPacket request, RadiusPacket challenge) throws RadiusException, NoSuchAlgorithmException
{
classAttribute = challenge.findAttribute(AttributeDictionary.CLASS);
if (classAttribute != null)
request.overwriteAttribute(AttributeFactory.copyAttribute(classAttribute, false));
stateAttribute = challenge.findAttribute(AttributeDictionary.STATE);
if (stateAttribute != null)
request.overwriteAttribute(AttributeFactory.copyAttribute(stateAttribute, false));
}
示例7: generateRequestMessageAuthenticator
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
public static void generateRequestMessageAuthenticator(RadiusPacket request, String sharedSecret) throws IOException, InvalidKeyException, NoSuchAlgorithmException
{
byte[] hash = new byte[16];
ByteBuffer buffer = ByteBuffer.allocate(4096);
request.overwriteAttribute(AttributeFactory.newAttribute(AttributeDictionary.MESSAGE_AUTHENTICATOR, hash, request.isRecyclable()));
format.packPacket(request, sharedSecret, buffer, true);
System.arraycopy(MD5.hmac_md5(buffer.array(), 0, buffer.position(), sharedSecret.getBytes()), 0, hash, 0, 16);
}
示例8: generateResponseMessageAuthenticator
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
public static void generateResponseMessageAuthenticator(RadiusPacket request, RadiusPacket reply, String sharedSecret) throws IOException, InvalidKeyException, NoSuchAlgorithmException
{
byte[] hash = new byte[16];
byte[] requestAuth = request.getAuthenticator();
byte[] replyAuth = reply.getAuthenticator();
ByteBuffer buffer = ByteBuffer.allocate(4096);
reply.setAuthenticator(requestAuth);
reply.overwriteAttribute(AttributeFactory.newAttribute(AttributeDictionary.MESSAGE_AUTHENTICATOR, hash, reply.isRecyclable()));
format.packPacket(reply, sharedSecret, buffer, true);
System.arraycopy(MD5.hmac_md5(buffer.array(), 0, buffer.position(), sharedSecret.getBytes()), 0, hash, 0, 16);
reply.setAuthenticator(replyAuth);
}
示例9: handle
import net.jradius.packet.RadiusPacket; //导入方法依赖的package包/类
public boolean handle(JRadiusRequest request) throws Exception
{
RadiusPacket req = request.getRequestPacket();
req.overwriteAttribute(new Attr_AcctSessionId(request.getSession().getSessionKey()));
return false;
}