コード例 #1
0
  public LDAPExtendedOperation extendedOperation(
      final LDAPExtendedOperation extendedOperation, final LDAPConstraints constraints)
      throws LDAPException {
    final ExtendedRequest extendedRequest =
        new ExtendedRequest(
            extendedOperation.getID(),
            new ASN1OctetString(extendedOperation.getValue()),
            getControls(constraints));

    try {
      final ExtendedResult result = conn.processExtendedOperation(extendedRequest);
      setResponseControls(result);

      if (result.getResultCode() != ResultCode.SUCCESS) {
        throw new LDAPException(
            result.getDiagnosticMessage(),
            result.getResultCode().intValue(),
            result.getDiagnosticMessage(),
            result.getMatchedDN());
      }

      final byte[] valueBytes;
      final ASN1OctetString value = result.getValue();
      if (value == null) {
        valueBytes = null;
      } else {
        valueBytes = value.getValue();
      }

      return new LDAPExtendedOperation(result.getOID(), valueBytes);
    } catch (com.hwlcn.ldap.ldap.sdk.LDAPException le) {
      debugException(le);
      setResponseControls(le);
      throw new LDAPException(le);
    }
  }