Did you add that user to a userGroup and assign a VACM view to that userGroup? Take a look at org.snmp4j.agent.test.TestAgent Also make sure your client talks SNMPv3 and not SNMPv1 by default.
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Ivan Mladenovic Sent: Friday, January 15, 2010 4:06 AM To: [email protected] Subject: [SNMP4J] Question about SNMPv3 configuration Hi, I'm using snmp4j to My configuration file for SNMPv3 is: snmp.user.name=userName snmp.auth.passphrase=m5_encrypted_passphrase snmp.privacy.passphrase=des_encrypted_passphrase snmp.auth.protocol=MD5 snmp.privacy.protocol=DES snmp.security.level=3 # Security level: AUTH_PRIV snmp.security.model=3 # SecurityModel.SECURITY_MODEL_USM I have class that implements CommandResponder. In consturctor: transport = new DefaultUdpTransportMapping(new UdpAddress("localhost/161")); snmp = new Snmp(transport); snmp.addCommandResponder(this); // Security protocol. SecurityProtocols securityProtocols = SecurityProtocols.getInstance(); securityProtocols.addAuthenticationProtocol(new AuthMD5()); byte[] localEngineID = MPv3.createLocalEngineID(); USM usm = new USM(securityProtocols, new OctetString(localEngineID), 0); SecurityModels.getInstance().addSecurityModel(usm); snmp.setLocalEngine(localEngineID, 0, 0); UsmUser usmUser = new UsmUser(userName, authProtocol, authPassphrase, privacyProtocol, privacyPassphrase); usm.addUser(snmpConfiguration.getUserName(), usmUser); // Listen for requests. transport.listen(); This class implements processPDU method: // Get object identifier. Vector<VariableBinding> variableBindings = event.getPDU().getVariableBindings(); VariableBinding variableBinding = variableBindings.get(0); OID oid = variableBinding.getOid(); Variable variable = new Counter32(someLongValue); variableBinding.setVariable(variable); PDU pdu = event.getPDU(); pdu.clear(); pdu.setErrorStatus(0); pdu.add(variableBinding); event.setPDU(pdu); event.setProcessed(true); try { byte[] engineID = MPv3.createLocalEngineID(); UserTarget target = new UserTarget(); target.setAddress(event.getPeerAddress()); target.setRetries(retriesCount); target.setTimeout(timeout); target.setVersion(SnmpConstants.version3); target.setSecurityName(userName); target.setSecurityLevel(SecurityLevel.AUTH_PRIV); target.setSecurityModel(SecurityModel.SECURITY_MODEL_USM); target.setAuthoritativeEngineID(engineID); ResponseEvent responseEvent = snmp.send(event.getPDU(), target); } catch (IOException e) { e.printStackTrace(); } Method processPDU catch GET request event, and response does not contains errors, but MIB browser always get timeout exception. Do I have some errors in configuration? Could you, please, give me some example? _______________________________________________ SNMP4J mailing list [email protected] http://lists.agentpp.org/mailman/listinfo/snmp4j _______________________________________________ SNMP4J mailing list [email protected] http://lists.agentpp.org/mailman/listinfo/snmp4j
