Class LDAPIsMember

All Implemented Interfaces:
Serializable

public class LDAPIsMember extends LDAPBasePropertySupport implements Serializable
Invisible Bean that just takes a host and port, optional authentication name and password, and DN of a group and another DN which might be a member of the group, and returns true or false, depending on whether the second DN is a member of the first.
Also handles the case of dynamic groups by derefencing the URL and searching for membership based on the url search.
It doesn't handle nested groups.

A false result means the member could not be identified as belonging to the group. The exact reason is available through getErrorCode(), which returns one of the following:
     OK
     INVALID_PARAMETER
     CONNECT_ERROR
     AUTHENTICATION_ERROR
     PROPERTY_NOT_FOUND
     AMBIGUOUS_RESULTS
     NO_SUCH_OBJECT
See Also:
  • Field Details

  • Constructor Details

    • LDAPIsMember

      public LDAPIsMember()
      Constructor with no parameters
    • LDAPIsMember

      public LDAPIsMember(String host, int port, String group)
      Constructor with host, port, and group DN initializers
      Parameters:
      host - host string
      port - port number
      group - distinguished name of the group
    • LDAPIsMember

      public LDAPIsMember(String host, int port, String dn, String password, String theGroup)
      Constructor with host, port, authentication DN and password and group DN initializers
      Parameters:
      host - host string
      port - port number
      dn - fully qualified distinguished name to authenticate
      password - password for authenticating the dn
      theGroup - distinguished name of the group
  • Method Details

    • notifyResult

      private void notifyResult(String newResult)
    • isMember

      public boolean isMember()
      Checks if an entity (specified by distinguished name) is a member of a particular group (specified by distinguished name)
      Returns:
      true if the specified member belongs to the group
    • isMember

      public boolean isMember(String host, int port, String dn, String password, String group, String member)
      Checks if an entity (specified by distinguished name) is a member of a particular group (specified by distinguished name)
      Parameters:
      host - host string
      port - port number
      dn - fully qualified distinguished name to authenticate; can be null or ""
      password - password for authenticating the dn; can be null or ""
      group - distinguished name of the group
      member - distinguished name of member to be checked
      Returns:
      true if the specified member belongs to the group
    • isMember

      public void isMember(ActionEvent e)
      Checks if an entity (specified by distinguished name) is a member of a particular group (specified by distinguished name)
    • getGroup

      public String getGroup()
      Returns the distinguished name of the group
      Returns:
      group name
    • setGroup

      public void setGroup(String group)
      Sets the distinguished name of the group
      Parameters:
      group - group name
    • getMember

      public String getMember()
      Returns the distinguished name of the member
      Returns:
      member name
    • setMember

      public void setMember(String member)
      Sets the distinguished name of the member
      Parameters:
      member - member name
    • normalizeDN

      private String normalizeDN(String dn)
    • URLMatch

      private boolean URLMatch(LDAPConnection ld, String URL, String normMemberDN)
      Return true if normMember is result of url search. Urls from dynamic groups do not typically contain the host and port so we need to fix them before constructing an LDAP URL. current ldap:///.... make ldap://host:port/...
    • main

      public static void main(String[] args)
      The main body if we run it as application instead of applet.
      Parameters:
      args - list of arguments