SNMP4J 3.9.6 Release

SNMP4J 3.9.6 has been released on 2025-07-02T22:00:00Z. It contains a new feature to control how empty contextEngineID in ScopedPDU should be treated. In general, an empty contextEngineID is not allowed in regular confirmed SNMPv3 requests. To improved interoperability with buggy SNMP devices/setups, it could be useful to automatically use the authoritativeEngineID as contextEngineID if the latter is missing. To control this new feature globally use: SNMP4JSettings.setEmptyContextEngineIdStrategy(Snmp4jConfirmedRequestEmptyContextEngineIdStrategy).

CHANGES

  • Fixed: UsmUser.isLocalizationGranted now returns always true too, if UsmUser returns OID SnmpConstants.usmNoAuthProtocol by getAuthenticationProtocol().
  • Added: SNMP4JSetting.setEmptyContextEngineIdStrategy(Snmp4jConfirmedRequestEmptyContextEngineIdStrategy) to let SNMP4J replace the an empty contentEngineID in confirmed class ScopedPDUs with the authoritative engine ID either on outgoing (like SNMP4J did it always before version 3.9.6) or incoming PDUs (new feature). In addition, the replacement can be deactivated completely (to detect errors, for example) or activated for both directions.

[2025-06-24] Version 3.9.5:

  • Fixed: UsmUser.isLocalized() did return false even if the localizationEngineID was empty (zero length OctetString).