LdapEncoder Base64 newlines should start with " "
Fixes gh-413
This commit is contained in:
@@ -258,6 +258,7 @@ public final class LdapEncoder {
|
||||
|
||||
if ((i + 1) % RFC2849_MAX_BASE64_CHARS_PER_LINE == 0) {
|
||||
sb.append('\n');
|
||||
sb.append(' ');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,6 +284,9 @@ public final class LdapEncoder {
|
||||
char c = val.charAt(i);
|
||||
|
||||
if(c == '\n'){
|
||||
if(i + 1 < len && val.charAt(i + 1) == ' ') {
|
||||
i++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,4 +57,35 @@ public class LdapEncoderTest {
|
||||
LdapEncoder.nameDecode("\\");
|
||||
}
|
||||
|
||||
// gh-413
|
||||
@Test
|
||||
public void printBase64WhenReallyLongThenNewLineStartsWithSpace() throws Exception {
|
||||
String toBase64Encode = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
String expected = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\n NTY3ODk=";
|
||||
|
||||
String actual = LdapEncoder.printBase64Binary(toBase64Encode.getBytes("UTF-8"));
|
||||
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
|
||||
// gh-413
|
||||
@Test
|
||||
public void parseBase64BinaryWhenReallyLongThenRemovesNewlineAndSpace() {
|
||||
String toParse = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\n NTY3ODk=";
|
||||
String expected = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
String actual = new String(LdapEncoder.parseBase64Binary(toParse));
|
||||
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseBase64BinaryWhenReallyLongThenRemovesNewlineWithNoSpaceForPassivity() {
|
||||
String toParse = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNTY3ODk=";
|
||||
String expected = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
String actual = new String(LdapEncoder.parseBase64Binary(toParse));
|
||||
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ dn: cn=Gern Jensen,ou=Product Testing,dc=airius,dc=com
|
||||
telephonenumber: +1 408 555 1212
|
||||
uid: gernj
|
||||
description:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVlIGlzIGJhc2UtNjQtZW5j
|
||||
b2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdGVyIGluIGl0IChhIENSKS4NICBC
|
||||
eSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQgb3V0IG1vcmUu
|
||||
b2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdGVyIGluIGl0IChhIENSKS4NICBC
|
||||
eSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQgb3V0IG1vcmUu
|
||||
objectclass: top
|
||||
objectclass: person
|
||||
objectclass: organizationalPerson
|
||||
|
||||
Reference in New Issue
Block a user