|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.snmp4j.security.USM
public class USM
The USM class implements the User Based Security Model (USM)
as defined in RFC3414.
When a user is added or removed from the USM, a UsmUserEvent
is fired and forwarded to registered listeners.
| Field Summary |
|---|
| Fields inherited from interface org.snmp4j.security.SecurityModel |
|---|
SECURITY_MODEL_ANY, SECURITY_MODEL_SNMPv1, SECURITY_MODEL_SNMPv2c, SECURITY_MODEL_USM |
| Constructor Summary | |
|---|---|
USM(SecurityProtocols securityProtocols,
OctetString localEngineID,
int engineBoots)
Creates a USM with the support for the supplied security protocols. |
|
| Method Summary | |
|---|---|
UsmUserEntry |
addLocalizedUser(byte[] engineID,
OctetString userName,
OID authProtocol,
byte[] authKey,
OID privProtocol,
byte[] privKey)
Adds a localized user to the USM. |
void |
addUser(OctetString userName,
OctetString engineID,
UsmUser user)
Adds an USM user to the internal user name table and associates it with an authoritative engine ID. |
void |
addUser(OctetString userName,
UsmUser user)
Adds an USM user to the internal user name table. |
void |
addUsmUserListener(UsmUserListener l)
Adds a UsmUserListener that should be informed whenever the
internal USM user table is changed. |
protected void |
fireIncrementCounter(CounterEvent e)
|
protected void |
fireUsmUserChange(UsmUserEvent e)
Fires a UsmUserEvent. |
int |
generateRequestMessage(int snmpVersion,
byte[] globalData,
int maxMessageSize,
int securityModel,
byte[] securityEngineID,
byte[] securityName,
int securityLevel,
BERInputStream scopedPDU,
SecurityParameters securityParameters,
BEROutputStream wholeMsg)
Generate a request message. |
int |
generateResponseMessage(int snmpVersion,
byte[] globalData,
int maxMessageSize,
int securityModel,
byte[] securityEngineID,
byte[] securityName,
int securityLevel,
BERInputStream scopedPDU,
SecurityStateReference securityStateReference,
SecurityParameters securityParameters,
BEROutputStream wholeMsg)
Generates a response message. |
CounterSupport |
getCounterSupport()
Gets the counter support instance that can be used to register for counter incremnetation events. |
int |
getEngineBoots()
Returns the number of engine boots counted for the local engine ID. |
int |
getEngineTime()
Returns the number of seconds since the value of the engineBoots object last changed. |
int |
getID()
Gets the ID of the security model. |
OctetString |
getLocalEngineID()
Returns the local engine ID. |
SecurityProtocols |
getSecurityProtocols()
Returns the security protocol collection used by this USM. |
UsmTimeTable |
getTimeTable()
Returns the UsmTimeTable instance used by this USM for holding
timing information about the local and remote SNMP entities. |
UsmUserEntry |
getUser(OctetString engineID,
OctetString securityName)
|
UsmUserTable |
getUserTable()
Returns the UsmUserTable instance used by the USM for local
storage of USM user information. |
boolean |
isEngineDiscoveryEnabled()
Checks whether engine ID discovery is enabled or not. |
SecurityParameters |
newSecurityParametersInstance()
Creates a new SecurityParameters instance that corresponds to this
security model. |
SecurityStateReference |
newSecurityStateReference()
Creates a new SecurityStateReference instance that corresponds to
this security model. |
int |
processIncomingMsg(int snmpVersion,
int maxMessageSize,
SecurityParameters securityParameters,
SecurityModel securityModel,
int securityLevel,
BERInputStream wholeMsg,
OctetString securityEngineID,
OctetString securityName,
BEROutputStream scopedPDU,
Integer32 maxSizeResponseScopedPDU,
SecurityStateReference securityStateReference,
StatusInformation statusInfo)
Processes an incoming message and returns its plaintext payload. |
void |
removeAllUsers()
Removes all users from the USM. |
void |
removeEngineTime(OctetString engineID)
Removes the specified engine ID from the internal time cache and thus forces an engine time rediscovery the next time the SNMP engine with the supplied ID is contacted. |
UsmUser |
removeUser(OctetString engineID,
OctetString userName)
Removes an USM user from the internal user name table. |
void |
removeUsmUserListener(UsmUserListener l)
Removes a UsmUserListener. |
void |
setCounterSupport(CounterSupport counterSupport)
Sets the counter support instance. |
void |
setEngineBoots(int engineBoots)
Sets the number of engine boots. |
void |
setEngineDiscoveryEnabled(boolean engineDiscoveryEnabled)
Enables or disables automatic engine ID discovery. |
void |
setLocalEngine(OctetString localEngineID,
int engineBoots,
int engineTime)
Sets the local engine ID, number of boots, and time after boot. |
void |
setUsers(UsmUser[] users)
Sets the users of this USM. |
void |
updateUser(UsmUserEntry entry)
Updates the USM user entry with the same engine ID and user name as the supplied instance and fires an appropriate UsmUserEvent. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public USM(SecurityProtocols securityProtocols,
OctetString localEngineID,
int engineBoots)
securityProtocols - the security protocols to support.localEngineID - the local engine ID.engineBoots - the number of engine boots.| Method Detail |
|---|
public int getID()
SecurityModel
getID in interface SecurityModelSecurityModel
interface.SecurityModel.SECURITY_MODEL_ANY,
SecurityModel.SECURITY_MODEL_SNMPv1,
SecurityModel.SECURITY_MODEL_SNMPv2c,
SecurityModel.SECURITY_MODEL_USM
public void setLocalEngine(OctetString localEngineID,
int engineBoots,
int engineTime)
localEngineID - the local engine ID.engineBoots - the number of engine boots.engineTime - the number sendonds since the last boot.public OctetString getLocalEngineID()
public void setEngineBoots(int engineBoots)
engineBoots - the number of engine boots.public int getEngineBoots()
public int getEngineTime()
public SecurityParameters newSecurityParametersInstance()
SecurityModelSecurityParameters instance that corresponds to this
security model.
newSecurityParametersInstance in interface SecurityModelSecurityParameters instance.public SecurityStateReference newSecurityStateReference()
SecurityModelSecurityStateReference instance that corresponds to
this security model.
newSecurityStateReference in interface SecurityModelSecurityStateReference instance.
public int generateRequestMessage(int snmpVersion,
byte[] globalData,
int maxMessageSize,
int securityModel,
byte[] securityEngineID,
byte[] securityName,
int securityLevel,
BERInputStream scopedPDU,
SecurityParameters securityParameters,
BEROutputStream wholeMsg)
throws java.io.IOException
SecurityModel
generateRequestMessage in interface SecurityModelsnmpVersion - the ID of the message processing model (SNMP version) to use.globalData - the message header and admin data.maxMessageSize - the maximum message size of the sending (this) SNMP entity for the
selected transport mapping (determined by the message processing model).securityModel - the security model for the outgoing message.securityEngineID - the authoritative SNMP entity.securityName - the principal on behalf of this message is generated.securityLevel - the requested SecurityLevel.scopedPDU - a BERInputStream containing the message (plain text) payload.securityParameters - returns the SecurityParameters filled by the security model.wholeMsg - returns the complete generated message in a BEROutputStream.
The buffer of wholeMsg is set to null by the
caller and must be set by the implementation of this method.
SnmpConstants.SNMPv3_USM_OK is returned, otherwise one of the
other SnmpConstants.SNMPv3_USM_* values is returned.
java.io.IOException - if generation of the message fails because of an internal or an resource
error.
public UsmUserEntry getUser(OctetString engineID,
OctetString securityName)
public int generateResponseMessage(int snmpVersion,
byte[] globalData,
int maxMessageSize,
int securityModel,
byte[] securityEngineID,
byte[] securityName,
int securityLevel,
BERInputStream scopedPDU,
SecurityStateReference securityStateReference,
SecurityParameters securityParameters,
BEROutputStream wholeMsg)
throws java.io.IOException
SecurityModel
generateResponseMessage in interface SecurityModelsnmpVersion - the ID of the message processing model (SNMP version) to use.globalData - the message header and admin data.maxMessageSize - the maximum message size of the sending (this) SNMP entity for the
selected transport mapping (determined by the message processing model).securityModel - the security model for the outgoing message.securityEngineID - the authoritative SNMP entity.securityName - the principal on behalf of this message is generated.securityLevel - the requested SecurityLevel.scopedPDU - a BERInputStream containing the message (plain text) payload.securityStateReference - a SecurityStateReference instance providing information from
original request.securityParameters - returns the SecurityParameters filled by the security model.wholeMsg - returns the complete generated message in a BEROutputStream.
The buffer of wholeMsg is set to null by the
caller and must be set by the implementation of this method.
SnmpConstants.SNMPv3_USM_OK is returned, otherwise one of the
other SnmpConstants.SNMPv3_USM_* values is returned.
java.io.IOException - if generation of the message fails because of an internal or an resource
error.
public int processIncomingMsg(int snmpVersion,
int maxMessageSize,
SecurityParameters securityParameters,
SecurityModel securityModel,
int securityLevel,
BERInputStream wholeMsg,
OctetString securityEngineID,
OctetString securityName,
BEROutputStream scopedPDU,
Integer32 maxSizeResponseScopedPDU,
SecurityStateReference securityStateReference,
StatusInformation statusInfo)
throws java.io.IOException
SecurityModel
processIncomingMsg in interface SecurityModelsnmpVersion - the ID of the message processing model (SNMP version) to use.maxMessageSize - the maximum message size of the message processing model for the
transport mapping associated with this message's source address less
the length of the maximum header length of the message processing model.
This value is used by the security model to determine the
maxSizeResponseScopedPDU value.securityParameters - the SecurityParameters for the received message.securityModel - the SecurityModel instance for the receied message.securityLevel - the SecurityLevel ID.wholeMsg - the BERInputStream containing the whole message as recieved
on the wire.securityEngineID - the authoritative SNMP entity.securityName - the identification of the principal.scopedPDU - returns the message (plaintext) payload into the supplied
BEROutputStream.
The buffer of scopedPDU is set to null by the
caller and must be set by the implementation of this method.maxSizeResponseScopedPDU - the determined maxmimum size for a response PDU.securityStateReference - the SecurityStateReference information needed for
a response.statusInfo - the StatusInformation needed to generate reports if
processing of the incoming message failed.
SnmpConstants.SNMPv3_USM_OK is returned, otherwise one of the
other SnmpConstants.SNMPv3_USM_* values is returned.
java.io.IOException - if an unexpected (internal) or an resource error occured.protected void fireIncrementCounter(CounterEvent e)
public void addUser(OctetString userName,
UsmUser user)
userName - a user name.user - the UsmUser to add.
public void addUser(OctetString userName,
OctetString engineID,
UsmUser user)
userName - a user name.engineID - the authoritative engine ID to be associated with this entry. If
engineID is null this method behaves exactly
like addUser(OctetString userName, UsmUser user).user - the UsmUser to add.public void updateUser(UsmUserEntry entry)
UsmUserEvent.
If the corresponding user entry does not yet exist then it will be added.
entry - an UsmUserEntry instance not necessarily the same as an
already existing entry.public void setUsers(UsmUser[] users)
users - a possibly empty UsmUser array of users.public UsmUserTable getUserTable()
UsmUserTable instance used by the USM for local
storage of USM user information. The returned table should not be modified,
because modifications will not be reported to registered
UsmUserListeners.
UsmUserTable instance containing the users known by
this USM.public UsmTimeTable getTimeTable()
UsmTimeTable instance used by this USM for holding
timing information about the local and remote SNMP entities.
public UsmUser removeUser(OctetString engineID,
OctetString userName)
engineID - the authoritative engine ID associated with the user, or
nulluserName - a user name.
UsmUser instance associate with the given
userName or null if such a user could not
be found.public void removeAllUsers()
public UsmUserEntry addLocalizedUser(byte[] engineID,
OctetString userName,
OID authProtocol,
byte[] authKey,
OID privProtocol,
byte[] privKey)
engineID - the engine ID for which the user has been localized.userName - the user's name.authProtocol - the authentication protocol ID.authKey - the authentication key.privProtocol - the privacy protocol ID.privKey - the privacy key.
UsmUserEntry.public boolean isEngineDiscoveryEnabled()
true if discovery is enabled, false otherwise.public void setEngineDiscoveryEnabled(boolean engineDiscoveryEnabled)
engineDiscoveryEnabled - true if discovery should be enabled,
false otherwise.public void removeUsmUserListener(UsmUserListener l)
UsmUserListener.
l - a proeviously added UsmUserListener.public void addUsmUserListener(UsmUserListener l)
UsmUserListener that should be informed whenever the
internal USM user table is changed.
l - a UsmUserListener that should be informed about
UsmUserEvent events.public void removeEngineTime(OctetString engineID)
engineID - the SNMP engine ID whose engine time to remove.protected void fireUsmUserChange(UsmUserEvent e)
UsmUserEvent.
e - the UsmUserEvent to fire.public CounterSupport getCounterSupport()
CounterSupport instance that is used to fire
CounterEvent.public SecurityProtocols getSecurityProtocols()
SecurityProtocols instance which is by default the
same instance as returned by SecurityProtocols.getInstance().public void setCounterSupport(CounterSupport counterSupport)
CounterSupport instance is used.
counterSupport - a CounterSupport subclass instance.
|
Copyright 2003-2009 Frank Fock and Jochen Katz (SNMP4J.org) | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||