LDIFファイルを読み込み、エントリを分割し、変更して、LDIFファイルとして結果を書き込む必要があります。大文字と小文字を区別するLDIFリーダ/パーサー/ストリーム
私は、ApacheディレクトリのLDAP API(org.apache.directory.api:api-ldap-client-api
)でLdifReaderを見つけたので、私はこのようなものことを試してみました:
Stream<LdifEntry> stream = StreamSupport.stream(reader.spliterator(), false);
Predicate<LdifEntry> isEnabled = entry -> entry.get("pwdAccountLockedTime") == null;
Map<Boolean, List<LdifEntry>> parts = stream.collect(Collectors.partitioningBy(isEnabled));
List<LdifEntry> enabledAccounts = parts.get(true);
List<LdifEntry> disabledAccounts = parts.get(false);
がうまく動作します。しかし、何らかの理由で、すべての属性名/ idsが小文字になります(「pwdAccountLockedTime」は「pwdaccountlockedtime」などになります)が、そのまま使用する必要があります(ケースを保持しています)人間の可読性 。
どうすればいいですか?必要に応じて別のライブラリを使用します。
注:いくつかのダウンボックスがあるので、私は質問を改善したいと思います。何が間違っているのか、何が欠けているのか教えてください。
あなたの必要条件は想像上のものです。大部分のLDAPは大文字小文字を区別しません。 – EJP
私が説明したように、要件は人間の可読性を保持することです。 – mbee