Class UsmMIB

  • All Implemented Interfaces:
    EventListener, MOTableRowListener<UsmMIB.UsmTableRow>, MOValueValidationListener, MOGroup, org.snmp4j.event.CounterListener, org.snmp4j.event.UsmUserListener


    public class UsmMIB
    extends Object
    implements MOGroup, org.snmp4j.event.CounterListener, MOValueValidationListener, MOTableRowListener<UsmMIB.UsmTableRow>, org.snmp4j.event.UsmUserListener
    The UsmMIB implements the SNMP-USER-BASED-SM-MIB defined in RFC 3414. The MIB implementation is backed by a USM instance. The configuration of the user based security model can be changed using the underlying USM or via SNMP but at least one user must be created programatically in order to allow any access to the agent via SNMP.

    When modifying the USM after having created this MIB, you will have to register this object as UsmUserListener to the USM.

    By using SNMP, a new users can only be created by cloning it from an existing user with the same or higher security level.

    Version:
    1.2
    Author:
    Frank Fock
    • Field Detail

      • noAuthProtocol

        public static final org.snmp4j.smi.OID noAuthProtocol
      • noPrivProtocol

        public static final org.snmp4j.smi.OID noPrivProtocol
      • usmUserSpinLockOID

        public static final org.snmp4j.smi.OID usmUserSpinLockOID
      • usmUserEntryOID

        public static final org.snmp4j.smi.OID usmUserEntryOID
      • colUsmUserAuthKeyChange

        public static final int colUsmUserAuthKeyChange
        See Also:
        Constant Field Values
      • colUsmUserOwnAuthKeyChange

        public static final int colUsmUserOwnAuthKeyChange
        See Also:
        Constant Field Values
      • colUsmUserPrivKeyChange

        public static final int colUsmUserPrivKeyChange
        See Also:
        Constant Field Values
      • colUsmUserOwnPrivKeyChange

        public static final int colUsmUserOwnPrivKeyChange
        See Also:
        Constant Field Values
      • colUsmUserLocalizationEngineID

        public static final int colUsmUserLocalizationEngineID
        See Also:
        Constant Field Values
    • Constructor Detail

      • UsmMIB

        public UsmMIB​(org.snmp4j.security.USM usm,
                      org.snmp4j.security.SecurityProtocols securityProtocols)
        Creates a USM MIB implementation connected to the supplied USM. The MIB contents will reflect any changes to the USM after completion of this constructor if you register this object as UsmUserListener to the USM!
        Parameters:
        usm - a User-based Security Model.
        securityProtocols - the supported SecurityProtocols.
    • Method Detail

      • getProtocolForKeyChange

        public org.snmp4j.smi.OID getProtocolForKeyChange​(Request<?,?,?> request,
                                                          org.snmp4j.smi.OID rowIndex,
                                                          org.snmp4j.security.dh.DHOperations.KeyType keyType)
      • getSecurityProtocols

        public org.snmp4j.security.SecurityProtocols getSecurityProtocols​()
      • registerMOs

        public void registerMOs​(MOServer server,
                                org.snmp4j.smi.OctetString context)
                         throws DuplicateRegistrationException
        Description copied from interface: MOGroup
        Registers the managed objects of this group with the server for the supplied context.
        Specified by:
        registerMOs in interface MOGroup
        Parameters:
        server - the MOServer where to register the managed objects.
        context - the context to use (may be null if no specific context is selected).
        Throws:
        DuplicateRegistrationException - if a managed object's scope (i.e. lower bound) is already registered at the server.
      • unregisterMOs

        public void unregisterMOs​(MOServer server,
                                  org.snmp4j.smi.OctetString context)
        Description copied from interface: MOGroup
        Unregisters the managed objects of this group from the supplied server and from the supplied context.
        Specified by:
        unregisterMOs in interface MOGroup
        Parameters:
        server - the MOServer where to unregister the managed objects.
        context - the context to use (may be null if no specific context is selected).
      • incrementCounter

        public void incrementCounter​(org.snmp4j.event.CounterEvent event)
        Specified by:
        incrementCounter in interface org.snmp4j.event.CounterListener
      • validate

        public void validate​(MOValueValidationEvent validationEvent)
        Description copied from interface: MOValueValidationListener
        Validates a value by returning a SNMP error code if validation fails or 0 (SnmpConstants.SNMP_ERROR_SUCCESS) if the validation was successful. The validation is returned by calling the MOValueValidationEvent.setValidationStatus(int) method. If an error occured the returned status value should be one of the following values:
        • SnmpConstants.SNMP_ERROR_WRONG_LENGTH
        • SnmpConstants.SNMP_ERROR_WRONG_VALUE
        • SnmpConstants.SNMP_ERROR_WRONG_TYPE
        • SnmpConstants.SNMP_ERROR_WRONG_ENCODING
        • SnmpConstants.SNMP_ERROR_BAD_VALUE
        Specified by:
        validate in interface MOValueValidationListener
        Parameters:
        validationEvent - the MOValueValidationEvent containing the value to validate.
      • usmUserChange

        public void usmUserChange​(org.snmp4j.event.UsmUserEvent event)
        Specified by:
        usmUserChange in interface org.snmp4j.event.UsmUserListener
      • localizeUser

        public static org.snmp4j.security.UsmUserEntry localizeUser​(org.snmp4j.smi.OctetString securityName,
                                                                    org.snmp4j.smi.OctetString localizationEngineID,
                                                                    org.snmp4j.smi.OID authProtocol,
                                                                    org.snmp4j.smi.OctetString authPassphrase,
                                                                    org.snmp4j.smi.OID privProtocol,
                                                                    org.snmp4j.smi.OctetString privPassphrase,
                                                                    org.snmp4j.security.SecurityProtocols securityProtocols)