[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