当前位置: 首页>>代码示例>>Java>>正文


Java RadiusPacket.overwriteAttribute方法代码示例

本文整理汇总了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;
}
 
开发者ID:coova,项目名称:jradius,代码行数:41,代码来源:ProxyClassHandler.java

示例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;
}
 
开发者ID:coova,项目名称:jradius,代码行数:29,代码来源:PreAcctHandler.java

示例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;
}
 
开发者ID:coova,项目名称:jradius,代码行数:37,代码来源:PostAuthorizeClassHandler.java

示例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()));
    }
}
 
开发者ID:coova,项目名称:jradius,代码行数:30,代码来源:RadiusSessionHandler.java

示例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);
}
 
开发者ID:coova,项目名称:jradius,代码行数:11,代码来源:EAPAuthenticator.java

示例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));
}
 
开发者ID:coova,项目名称:jradius,代码行数:19,代码来源:RadiusAuthenticator.java

示例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);
}
 
开发者ID:coova,项目名称:jradius,代码行数:9,代码来源:MessageAuthenticator.java

示例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);
}
 
开发者ID:coova,项目名称:jradius,代码行数:13,代码来源:MessageAuthenticator.java

示例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;
}
 
开发者ID:coova,项目名称:jradius,代码行数:7,代码来源:RewriteSessionIdHandler.java


注:本文中的net.jradius.packet.RadiusPacket.overwriteAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。