Repository: syncope Updated Branches: refs/heads/master 871acf07e -> 3f9c71c2a
[SYNCOPE-938] Base64 encoder preferred over MIME encoder, where applicable Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/3f9c71c2 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/3f9c71c2 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/3f9c71c2 Branch: refs/heads/master Commit: 3f9c71c2aa0f4d3b34a90b903d6c00d612e87ed5 Parents: 871acf0 Author: Francesco Chicchiriccò <ilgro...@apache.org> Authored: Thu Aug 24 17:38:30 2017 +0200 Committer: Francesco Chicchiriccò <ilgro...@apache.org> Committed: Thu Aug 24 17:38:30 2017 +0200 ---------------------------------------------------------------------- .../core/persistence/jpa/entity/AbstractPlainAttrValue.java | 4 ++-- .../syncope/core/persistence/jpa/inner/PlainAttrTest.java | 2 +- .../provisioning/api/serialization/AttributeDeserializer.java | 2 +- .../provisioning/api/serialization/AttributeSerializer.java | 2 +- .../api/serialization/GuardedStringDeserializer.java | 2 +- .../api/serialization/GuardedStringSerializer.java | 2 +- .../provisioning/api/serialization/SyncTokenDeserializer.java | 2 +- .../provisioning/api/serialization/SyncTokenSerializer.java | 2 +- .../provisioning/java/job/report/ReconciliationReportlet.java | 2 +- .../java/propagation/LDAPPasswordPropagationActions.java | 2 +- .../provisioning/java/pushpull/LDAPPasswordPullActions.java | 2 +- .../org/apache/syncope/core/spring/security/Encryptor.java | 4 ++-- .../core/workflow/java/AbstractUserWorkflowAdapter.java | 4 ++-- .../java/org/apache/syncope/fit/core/UserIssuesITCase.java | 7 ++----- 14 files changed, 18 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java index ae81e6e..b471690 100644 --- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java +++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java @@ -188,7 +188,7 @@ public abstract class AbstractPlainAttrValue extends AbstractGeneratedKeyEntity break; case Binary: - this.setBinaryValue(Base64.getMimeDecoder().decode(value)); + this.setBinaryValue(Base64.getDecoder().decode(value)); break; case String: @@ -261,7 +261,7 @@ public abstract class AbstractPlainAttrValue extends AbstractGeneratedKeyEntity break; case Binary: - result = Base64.getMimeEncoder().encodeToString(getBinaryValue()); + result = Base64.getEncoder().encodeToString(getBinaryValue()); break; case String: http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java index f4a6ebd..0844c7a 100644 --- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java +++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java @@ -206,7 +206,7 @@ public class PlainAttrTest extends AbstractTest { byte[] bytes = new byte[20]; new Random().nextBytes(bytes); - String photoB64Value = Base64.getMimeEncoder().encodeToString(bytes); + String photoB64Value = Base64.getEncoder().encodeToString(bytes); UPlainAttr attr = entityFactory.newEntity(UPlainAttr.class); attr.setOwner(user); http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeDeserializer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeDeserializer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeDeserializer.java index a6885d7..2144080 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeDeserializer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeDeserializer.java @@ -63,7 +63,7 @@ class AttributeDeserializer extends JsonDeserializer<Attribute> { if (text.startsWith(AttributeSerializer.BYTE_ARRAY_PREFIX) && text.endsWith(AttributeSerializer.BYTE_ARRAY_SUFFIX)) { - values.add(Base64.getMimeDecoder().decode(StringUtils.substringBetween( + values.add(Base64.getDecoder().decode(StringUtils.substringBetween( text, AttributeSerializer.BYTE_ARRAY_PREFIX, AttributeSerializer.BYTE_ARRAY_SUFFIX))); } else { values.add(text); http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeSerializer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeSerializer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeSerializer.java index 5ca1b73..10d0d2d 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeSerializer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/AttributeSerializer.java @@ -61,7 +61,7 @@ class AttributeSerializer extends JsonSerializer<Attribute> { } else if (value instanceof byte[]) { jgen.writeString( BYTE_ARRAY_PREFIX - + Base64.getMimeEncoder().encodeToString((byte[]) value) + + Base64.getEncoder().encodeToString((byte[]) value) + BYTE_ARRAY_SUFFIX); } else { jgen.writeString(value.toString()); http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringDeserializer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringDeserializer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringDeserializer.java index c6251b1..af4378a 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringDeserializer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringDeserializer.java @@ -50,7 +50,7 @@ class GuardedStringDeserializer extends JsonDeserializer<GuardedString> { } byte[] encryptedBytes = null; if (tree.has("encryptedBytes")) { - encryptedBytes = Base64.getMimeDecoder().decode(tree.get("encryptedBytes").asText()); + encryptedBytes = Base64.getDecoder().decode(tree.get("encryptedBytes").asText()); } String base64SHA1Hash = null; if (tree.has("base64SHA1Hash")) { http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringSerializer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringSerializer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringSerializer.java index d55ca9f..26eec0a 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringSerializer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/GuardedStringSerializer.java @@ -62,7 +62,7 @@ class GuardedStringSerializer extends JsonSerializer<GuardedString> { byte[] encryptedBytes = EncryptorFactory.getInstance().getDefaultEncryptor().encrypt(SecurityUtil.decrypt(source).getBytes()); - jgen.writeStringField("encryptedBytes", Base64.getMimeEncoder().encodeToString(encryptedBytes)); + jgen.writeStringField("encryptedBytes", Base64.getEncoder().encodeToString(encryptedBytes)); String base64SHA1Hash = null; try { http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenDeserializer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenDeserializer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenDeserializer.java index e6ee79d..e2a2e2d 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenDeserializer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenDeserializer.java @@ -53,7 +53,7 @@ class SyncTokenDeserializer extends JsonDeserializer<SyncToken> { if (value instanceof String) { String base64 = (String) value; try { - value = Base64.getMimeDecoder().decode(base64); + value = Base64.getDecoder().decode(base64); } catch (RuntimeException e) { value = base64; } http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenSerializer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenSerializer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenSerializer.java index 0644d8f..b96c6d2 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenSerializer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/serialization/SyncTokenSerializer.java @@ -46,7 +46,7 @@ class SyncTokenSerializer extends JsonSerializer<SyncToken> { } else if (source.getValue() instanceof Integer) { jgen.writeNumber((Integer) source.getValue()); } else if (source.getValue() instanceof byte[]) { - jgen.writeString(Base64.getMimeEncoder().encodeToString((byte[]) source.getValue())); + jgen.writeString(Base64.getEncoder().encodeToString((byte[]) source.getValue())); } else { jgen.writeString(source.getValue().toString()); } http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java ---------------------------------------------------------------------- diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java index 2e973b0..9b5f6eb 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java @@ -264,7 +264,7 @@ public class ReconciliationReportlet extends AbstractReportlet { } else if (attr.getValue().get(0) instanceof byte[]) { values = new HashSet<>(attr.getValue().size()); attr.getValue().forEach(single -> { - values.add(Base64.getMimeEncoder().encode((byte[]) single)); + values.add(Base64.getEncoder().encode((byte[]) single)); }); } else { values = new HashSet<>(attr.getValue()); http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java ---------------------------------------------------------------------- diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java index 0828bb6..08d4c7a 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java @@ -72,7 +72,7 @@ public class LDAPPasswordPropagationActions implements PropagationActions { String password = user.getPassword().toLowerCase(); byte[] decodedPassword = DatatypeConverter.parseHexBinary(password); - String base64EncodedPassword = Base64.getMimeEncoder().encodeToString(decodedPassword); + String base64EncodedPassword = Base64.getEncoder().encodeToString(decodedPassword); String cipherPlusPassword = ("{" + cipherAlgorithm.toLowerCase() + "}" + base64EncodedPassword); http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java ---------------------------------------------------------------------- diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java index ac3ddfa..0761e09 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java @@ -112,7 +112,7 @@ public class LDAPPasswordPullActions implements PullActions { if (entity instanceof UserTO && encodedPassword != null && cipher != null) { User user = userDAO.find(entity.getKey()); if (user != null) { - byte[] encodedPasswordBytes = Base64.getMimeDecoder().decode(encodedPassword.getBytes()); + byte[] encodedPasswordBytes = Base64.getDecoder().decode(encodedPassword.getBytes()); String encodedHexStr = DatatypeConverter.printHexBinary(encodedPasswordBytes).toUpperCase(); user.setEncodedPassword(encodedHexStr, cipher); http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/spring/src/main/java/org/apache/syncope/core/spring/security/Encryptor.java ---------------------------------------------------------------------- diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/Encryptor.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/Encryptor.java index ee802b0..e47d62e 100644 --- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/Encryptor.java +++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/Encryptor.java @@ -180,7 +180,7 @@ public final class Encryptor { final Cipher cipher = Cipher.getInstance(CipherAlgorithm.AES.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, keySpec); - encodedValue = new String(Base64.getMimeEncoder().encode(cipher.doFinal(cleartext))); + encodedValue = new String(Base64.getEncoder().encode(cipher.doFinal(cleartext))); } else if (cipherAlgorithm == CipherAlgorithm.BCRYPT) { encodedValue = BCrypt.hashpw(value, BCrypt.gensalt()); } else { @@ -223,7 +223,7 @@ public final class Encryptor { final Cipher cipher = Cipher.getInstance(CipherAlgorithm.AES.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, keySpec); - value = new String(cipher.doFinal(Base64.getMimeDecoder().decode(encoded)), StandardCharsets.UTF_8); + value = new String(cipher.doFinal(Base64.getDecoder().decode(encoded)), StandardCharsets.UTF_8); } return value; http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractUserWorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractUserWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractUserWorkflowAdapter.java index c5a9c3a..4188ea7 100644 --- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractUserWorkflowAdapter.java +++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractUserWorkflowAdapter.java @@ -53,12 +53,12 @@ public abstract class AbstractUserWorkflowAdapter implements UserWorkflowAdapter protected String encrypt(final String clear) { byte[] encrypted = EncryptorFactory.getInstance().getDefaultEncryptor().encrypt(clear.getBytes()); - return Base64.getMimeEncoder().encodeToString(encrypted); + return Base64.getEncoder().encodeToString(encrypted); } protected String decrypt(final String crypted) { byte[] decrypted = EncryptorFactory.getInstance().getDefaultEncryptor(). - decrypt(Base64.getMimeDecoder().decode(crypted)); + decrypt(Base64.getDecoder().decode(crypted)); return new String(decrypted); } http://git-wip-us.apache.org/repos/asf/syncope/blob/3f9c71c2/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java index 5d679f7..e89d410 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java @@ -681,7 +681,7 @@ public class UserIssuesITCase extends AbstractITCase { // 2. create user with membership of the above group UserTO userTO = UserITCase.getUniqueSampleTO("syncope...@syncope.apache.org"); userTO.getPlainAttrs().add(attrTO("obscure", "valueToBeObscured")); - userTO.getPlainAttrs().add(attrTO("photo", Base64.getMimeEncoder().encodeToString( + userTO.getPlainAttrs().add(attrTO("photo", Base64.getEncoder().encodeToString( IOUtils.readBytesFromStream(getClass().getResourceAsStream("/favicon.jpg"))))); userTO.getMemberships().add(new MembershipTO.Builder().group(groupTO.getKey()).build()); @@ -699,10 +699,7 @@ public class UserIssuesITCase extends AbstractITCase { assertEquals(userTO.getPlainAttr("obscure").get().getValues(), registeredAddress.getValues()); Optional<AttrTO> jpegPhoto = connObj.getAttr("jpegPhoto"); assertTrue(jpegPhoto.isPresent()); - // difference between java.util.Base64 encoding and ConnId's - assertEquals( - userTO.getPlainAttr("photo").get().getValues().get(0).replace("\n", "").replace("\r", ""), - jpegPhoto.get().getValues().get(0)); + assertEquals(userTO.getPlainAttr("photo").get().getValues().get(0), jpegPhoto.get().getValues().get(0)); // 4. remove group groupService.delete(groupTO.getKey());