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
UsmUserreturnsOIDSnmpConstants.usmNoAuthProtocolbygetAuthenticationProtocol(). - Added:
SNMP4JSetting.setEmptyContextEngineIdStrategy(Snmp4jConfirmedRequestEmptyContextEngineIdStrategy)to let SNMP4J replace the an emptycontentEngineIDin confirmed classScopedPDUs with the authoritative engine ID either on outgoing (like SNMP4J did it always before version 3.9.6) or incomingPDUs (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 thelocalizationEngineIDwas empty (zero lengthOctetString).