org.snmp4j.agent.mo.snmp
Class UsmMIB

java.lang.Object
  extended by org.snmp4j.agent.mo.snmp.UsmMIB
All Implemented Interfaces:
java.util.EventListener, MOTableRowListener, MOValueValidationListener, MOGroup, org.snmp4j.event.CounterListener, org.snmp4j.event.UsmUserListener

public class UsmMIB
extends java.lang.Object
implements MOGroup, org.snmp4j.event.CounterListener, MOValueValidationListener, MOTableRowListener, 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 programatically by changing 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

Nested Class Summary
 class UsmMIB.UsmTableModel
           
 class UsmMIB.UsmTableRow
           
 
Field Summary
static int colUsmUserAuthKey
           
static int colUsmUserAuthKeyChange
           
static int colUsmUserAuthPassword
           
static int colUsmUserAuthProtocol
           
static int colUsmUserCloneFrom
           
static int colUsmUserLocalizationEngineID
           
static int colUsmUserOwnAuthKeyChange
           
static int colUsmUserOwnPrivKeyChange
           
static int colUsmUserPrivKey
           
static int colUsmUserPrivKeyChange
           
static int colUsmUserPrivPassword
           
static int colUsmUserPrivProtocol
           
static int colUsmUserPublic
           
static int colUsmUserSecurityName
           
static int colUsmUserStatus
           
static int colUsmUserStorageType
           
static org.snmp4j.smi.OID noAuthProtocol
           
static org.snmp4j.smi.OID noPrivProtocol
           
static org.snmp4j.smi.OID usmUserEntryOID
           
static org.snmp4j.smi.OID usmUserSpinLockOID
           
 
Constructor Summary
UsmMIB(org.snmp4j.security.USM usm, org.snmp4j.security.SecurityProtocols securityProtocols)
          Creates a USM MIB implementation connected to the supplied USM.
 
Method Summary
 DefaultMOTable getUsmUserEntry()
           
 void incrementCounter(org.snmp4j.event.CounterEvent event)
           
 void registerMOs(MOServer server, org.snmp4j.smi.OctetString context)
          Registers the managed objects of this group with the server for the supplied context.
 void rowChanged(MOTableRowEvent event)
          A column or a complete row is changed/has been changed.
 void unregisterMOs(MOServer server, org.snmp4j.smi.OctetString context)
          Unregisters the managed objects of this group from the supplied server and from the supplied context.
 void usmUserChange(org.snmp4j.event.UsmUserEvent event)
           
 void validate(MOValueValidationEvent validationEvent)
          Validates a value by returning a SNMP error code if validation fails or 0 (SnmpConstants.SNMP_ERROR_SUCCESS) if the validation was successful.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

colUsmUserSecurityName

public static final int colUsmUserSecurityName
See Also:
Constant Field Values

colUsmUserCloneFrom

public static final int colUsmUserCloneFrom
See Also:
Constant Field Values

colUsmUserAuthProtocol

public static final int colUsmUserAuthProtocol
See Also:
Constant Field Values

colUsmUserAuthKeyChange

public static final int colUsmUserAuthKeyChange
See Also:
Constant Field Values

colUsmUserOwnAuthKeyChange

public static final int colUsmUserOwnAuthKeyChange
See Also:
Constant Field Values

colUsmUserPrivProtocol

public static final int colUsmUserPrivProtocol
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

colUsmUserPublic

public static final int colUsmUserPublic
See Also:
Constant Field Values

colUsmUserStorageType

public static final int colUsmUserStorageType
See Also:
Constant Field Values

colUsmUserStatus

public static final int colUsmUserStatus
See Also:
Constant Field Values

colUsmUserAuthPassword

public static final int colUsmUserAuthPassword
See Also:
Constant Field Values

colUsmUserPrivPassword

public static final int colUsmUserPrivPassword
See Also:
Constant Field Values

colUsmUserLocalizationEngineID

public static final int colUsmUserLocalizationEngineID
See Also:
Constant Field Values

colUsmUserAuthKey

public static final int colUsmUserAuthKey
See Also:
Constant Field Values

colUsmUserPrivKey

public static final int colUsmUserPrivKey
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

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:

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

getUsmUserEntry

public DefaultMOTable getUsmUserEntry()

rowChanged

public void rowChanged(MOTableRowEvent event)
Description copied from interface: MOTableRowListener
A column or a complete row is changed/has been changed.

Specified by:
rowChanged in interface MOTableRowListener
Parameters:
event - a MOTableRowEvent describing the event. To veto the event the MOTableRowEvent.setVetoStatus(int) and optionally also the MOTableRowEvent.setVetoColumn(int) can be called.

Copyright 2005-2010 Frank Fock (SNMP4J.org)

Copyright © 2011 SNMP4J.org. All Rights Reserved.