import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Map;
/** Basic LDIF writer */
public class LdifWriter {
+ private final static Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
private final Writer writer;
/** Writer must be closed by caller */
/** Stream must be closed by caller */
public LdifWriter(OutputStream out) {
- this(new OutputStreamWriter(out));
+ this(new OutputStreamWriter(out, DEFAULT_CHARSET));
}
public void writeEntry(LdapName name, Attributes attributes) throws IOException {
throw new UserDirectoryException(
"Attribute " + nameAttr.getID() + "=" + nameAttr.get() + " not consistent with DN " + name);
- writer.append(LdapAttrs.DN + ":").append(name.toString()).append('\n');
+ writer.append(LdapAttrs.DN + ": ").append(name.toString()).append('\n');
Attribute objectClassAttr = attributes.get("objectClass");
if (objectClassAttr != null)
writeAttribute(objectClassAttr);
Object value = attrValues.next();
if (value instanceof byte[]) {
String encoded = Base64.getEncoder().encodeToString((byte[]) value);
- writer.append(attribute.getID()).append("::").append(encoded).append('\n');
+ writer.append(attribute.getID()).append(":: ").append(encoded).append('\n');
} else {
- writer.append(attribute.getID()).append(':').append(value.toString()).append('\n');
+ writer.append(attribute.getID()).append(": ").append(value.toString()).append('\n');
}
}
}