[jboss-cvs] JBossAS SVN: r110814 - in branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp: test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 2 08:10:40 EST 2011


Author: thauser at redhat.com
Date: 2011-03-02 08:10:40 -0500 (Wed, 02 Mar 2011)
New Revision: 110814

Modified:
   branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/AttributeMappingsBinding.java
   branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java
   branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java
   branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java
Log:
work in progress, USM integration

Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/AttributeMappingsBinding.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/AttributeMappingsBinding.java	2011-03-02 06:11:36 UTC (rev 110813)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/AttributeMappingsBinding.java	2011-03-02 13:10:40 UTC (rev 110814)
@@ -41,7 +41,7 @@
  *       attribute, which would replace the mbean oid-prefix 
  *      -Remove the ability for there to be an oid-prefix for the MBeans. instead, but this into the "table" element.
  *       the reason we should do this is because SNMP works with "Objects" and "Instances". The way it is currently
- *       parsed makes it seem like each MIB is a table, and we do not want to force this behavior.
+ *       parsed makes it seem like each MBean is a table, and we do not want to force this behavior.
  *      
  *      New scheme for parsing: 
  *      <mbean name=...> (MBean we're interested in.)

Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java	2011-03-02 06:11:36 UTC (rev 110813)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java	2011-03-02 13:10:40 UTC (rev 110814)
@@ -45,7 +45,11 @@
 import org.snmp4j.transport.DefaultTcpTransportMapping;
 import org.snmp4j.transport.DefaultUdpTransportMapping;
 import org.snmp4j.PDU;
+// SNMP4J Security Imports
+import org.snmp4j.mp.*;
+import org.snmp4j.security.*;
 
+
 /**
  * <tt>SnmpAgentService</tt> is an MBean class implementing an SNMP agent.
  *
@@ -592,11 +596,23 @@
 	   
       //TODO: for v3 support we need to have this Snmp object have a USM (user security model) associated with it
       // as well as the appropriate MP. 
+      // the new Snmp(TransportMapping) constructor already initializes a MessageDispatcherImpl with all MP's associated. 
       
 	   //Snmp snmp = new Snmp(new DefaultTcpTransportMapping(new TcpAddress(this.bindAddress, this.port)));
        Snmp snmp = new Snmp(new DefaultUdpTransportMapping(new UdpAddress(this.bindAddress, this.port)));
+       OctetString localEngineID=new OctetString(snmp.getLocalEngineID());
+       USM usm = new USM(SecurityProtocols.getInstance(), localEngineID, 0);
+	   //** THIS MUST BE READ FROM A FILE **//
+	   usm.addUser(new OctetString("MD5DES"),
+               new UsmUser(new OctetString("MD5DES"),
+                           AuthMD5.ID,
+                           new OctetString("MD5DESUserAuthPassword"),
+                           PrivDES.ID,
+                           new OctetString("MD5DESUserPrivPassword")));
+       SecurityModels.getInstance().addSecurityModel(usm);
        SnmpRequest request = new SnmpRequest(requestHandler, log);
 	   snmp.addCommandResponder(request);
+
 	   snmp.listen();
    }
    

Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java	2011-03-02 06:11:36 UTC (rev 110813)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java	2011-03-02 13:10:40 UTC (rev 110814)
@@ -31,7 +31,6 @@
 	}
 
 	@Override
-	//TODO: catch thrown exceptions properly and decide what to do with them. 
 	public void processPdu(CommandResponderEvent event){
 		PDU pdu = event.getPDU();
 

Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java	2011-03-02 06:11:36 UTC (rev 110813)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java	2011-03-02 13:10:40 UTC (rev 110814)
@@ -44,6 +44,9 @@
 		else if (args[0].equals("set")){
 			set(args);
 		}
+		else if (args[0].equals("getv3")){
+			getv3();
+		}
 		else if (args[0].equals("testnullpdu")){
 			testnull();
 		}
@@ -110,8 +113,56 @@
 		   
 	   }
 	
+   public static void getv3(){
+	   ScopedPDU pdu = new ScopedPDU();
+	   pdu.add(new VariableBinding(new OID("1.3.6")));
+	   pdu.setType(PDU.GETNEXT);
+	   Address targetAddress = GenericAddress.parse("udp:127.0.0.1/1161");
+	   UserTarget target = new UserTarget();
+	   target.setVersion(SnmpConstants.version3);
+	   target.setAddress(targetAddress);
+	   target.setRetries(2);
+	   target.setTimeout(10000);
+	   target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
+	   target.setSecurityName(new OctetString("MD5DE"));
+	   
+		try {
+			DefaultUdpTransportMapping transport = new DefaultUdpTransportMapping();
+			transport.listen();
+			System.out.println("READY: "+System.currentTimeMillis());
+ 			Snmp snmp = new Snmp(transport);
+			USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(), 0);
+			SecurityModels.getInstance().addSecurityModel(usm);
+			long t1 = System.currentTimeMillis();
+			System.out.println("SENDING: "+t1);
+			System.out.println("PDU: "+pdu);
+			ResponseEvent responseEvent = snmp.send(pdu, target);
+			long t2=System.currentTimeMillis();
+			System.out.println("SENT: "+t2);
+			System.out.println("ELAPSED: "+(t2-t1));
+			System.out.println("response " + responseEvent.toString());
+
+			PDU responsePDU = responseEvent.getResponse();
+			if (responsePDU == null){
+				System.out.println("Request timed out");
+			}
+			else{
+				System.out.println("Received response "+responsePDU);
+			}
+				System.out.println("Peer Address: "+responseEvent.getPeerAddress());
+		} catch (UnknownHostException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		} catch (IOException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		} catch (Exception e) {
+			System.out.println("Some Other exception!!");
+		}
+	   
+
+   }
 	
-	
    public static void getnext(String [] oids){
 	PDU pdu = new PDU();
 	pdu.setType(PDU.GETNEXT);



More information about the jboss-cvs-commits mailing list