code: @Override
      public Uid authenticate(
              final ObjectClass objectClass,
              final String username,
              final GuardedString password,
              final OperationOptions options) {
  
          LOG.ok("User uthentication");
  
          // check objectclass
          if (objectClass == null || (!objectClass.equals(ObjectClass.ACCOUNT))) {
              throw new IllegalArgumentException("Invalid objectclass");
          }
  
          // check creadentials
          if (username == null || password == null) {
              throw new IllegalArgumentException("Invalid credentuals");
          }
  
          // get web service client
          final Provisioning provisioning = connection.getProvisioning();
          if (provisioning == null) {
              throw new IllegalStateException("Web Service client not found");
          }
  
          try {
              return new Uid(provisioning.authenticate(username, password.toString()));
          } catch (ProvisioningException e) {
              throw new ConnectorException("Authentication failed", e);
          } catch (Throwable t) {
              throw new ConnectorException("Communication exception", t);
          }
      }
docs: {@inheritDoc}
  
  @param objectClass
  @param username
  @param password
  @param options
  @return