Module org.snmp4j

Class UsmUser

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<UsmUser>, User

    public class UsmUser
    extends java.lang.Object
    implements User, java.lang.Comparable<UsmUser>, java.lang.Cloneable
    The UsmUser class represents USM user providing information to secure SNMPv3 message exchange. A user is characterized by its security name and optionally by a authentication protocol and passphrase as well as a privacy protocol and passphrase.

    There are no setters for the attributes of this class, to prevent inconsistent states in the USM, when a user is changed from outside.

    Version:
    3.0.6
    Author:
    Frank Fock
    See Also:
    Serialized Form
    • Constructor Detail

      • UsmUser

        public UsmUser​(OctetString securityName,
                       OID authenticationProtocol,
                       OctetString authenticationPassphrase,
                       OID privacyProtocol,
                       OctetString privacyPassphrase)
        Creates a USM user.
        Parameters:
        securityName - the security name of the user (typically the user name).
        authenticationProtocol - the authentication protcol ID to be associated with this user. If set to null, this user only supports unauthenticated messages.
        authenticationPassphrase - the authentication passphrase. If not null, authenticationProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
        privacyProtocol - the privacy protcol ID to be associated with this user. If set to null, this user only supports unencrypted messages.
        privacyPassphrase - the privacy passphrase. If not null, privacyProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
      • UsmUser

        public UsmUser​(OctetString securityName,
                       OID authenticationProtocol,
                       OctetString authenticationPassphrase,
                       OID privacyProtocol,
                       OctetString privacyPassphrase,
                       OctetString localizationEngineID)
        Creates a localized USM user.
        Parameters:
        securityName - the security name of the user (typically the user name).
        authenticationProtocol - the authentication protcol ID to be associated with this user. If set to null, this user only supports unauthenticated messages.
        authenticationPassphrase - the authentication passphrase. If not null, authenticationProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
        privacyProtocol - the privacy protcol ID to be associated with this user. If set to null, this user only supports unencrypted messages.
        privacyPassphrase - the privacy passphrase. If not null, privacyProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
        localizationEngineID - if not null, the localizationEngineID specifies the engine ID for which the supplied passphrases are already localized. Such an USM user can only be used with the target whose engine ID equals localizationEngineID.
    • Method Detail

      • getSecurityName

        public OctetString getSecurityName()
        Gets the user's security name.
        Returns:
        a clone of the user's security name.
      • getAuthenticationProtocol

        public OID getAuthenticationProtocol()
        Gets the authentication protocol ID.
        Returns:
        a clone of the authentication protocol ID or null.
      • getPrivacyProtocol

        public OID getPrivacyProtocol()
        Gets the privacy protocol ID.
        Returns:
        a clone of the privacy protocol ID or null.
      • getAuthenticationPassphrase

        public OctetString getAuthenticationPassphrase()
        Gets the authentication passphrase.
        Returns:
        a clone of the authentication passphrase or null.
      • getPrivacyPassphrase

        public OctetString getPrivacyPassphrase()
        Gets the privacy passphrase.
        Returns:
        a clone of the privacy passphrase or null.
      • getLocalizationEngineID

        public OctetString getLocalizationEngineID()
        Returns the localization engine ID for which this USM user has been already localized.
        Returns:
        null if this USM user is not localized or the SNMP engine ID of the target for which this user has been localized.
        Since:
        1.6
      • isLocalized

        public boolean isLocalized()
        Indicates whether the passphrases of this USM user need to be localized or not (true is returned in that case).
        Returns:
        true if the passphrases of this USM user represent localized keys.
        Since:
        1.6
      • getSecurityModel

        public int getSecurityModel()
        Gets the security model ID of the USM.
        Returns:
        USM.getID()
      • compareTo

        public int compareTo​(UsmUser other)
        Compares two USM users by their security names.
        Specified by:
        compareTo in interface java.lang.Comparable<UsmUser>
        Parameters:
        other - another UsmUser instance.
        Returns:
        a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
      • clone

        public java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object