This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.jcr.contentloader-2.0.6 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git
commit 49ef37198011f35bc45ae0eccaaae8574862c48c Author: Carsten Ziegeler <[email protected]> AuthorDate: Thu Dec 24 09:09:54 2009 +0000 SLING-1236 : Scala Scripting: Make all types of the script arguments visible on the Scala side. Apply patch from Michael Dürig git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader@893712 13f79535-47bb-0310-9956-ffa450edef68 --- .../internal/ContentLoaderService.java | 9 +++--- .../internal/DefaultContentCreator.java | 33 ++++++++++++++++++++-- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java index 0ce1039..24d6e35 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java @@ -35,7 +35,6 @@ import javax.jcr.Session; import javax.jcr.Value; import javax.jcr.lock.LockException; -import org.apache.jackrabbit.util.Text; import org.apache.sling.commons.mime.MimeTypeService; import org.apache.sling.engine.SlingSettingsService; import org.apache.sling.jcr.api.SlingRepository; @@ -79,7 +78,7 @@ public class ContentLoaderService implements SynchronousBundleListener { private static final String PROP_PASSWORD_DIGEST_ALGORITHM = "password.digest.algorithm"; private static final String DEFAULT_PASSWORD_DIGEST_ALGORITHM = "sha1"; private String passwordDigestAlgoritm = null; - + /** default log */ final Logger log = LoggerFactory.getLogger(getClass()); @@ -221,7 +220,7 @@ public class ContentLoaderService implements SynchronousBundleListener { try { StringBuffer password = new StringBuffer(); password.append("{").append(passwordDigestAlgoritm).append("}"); - password.append(Text.digest(passwordDigestAlgoritm, + password.append(DefaultContentCreator.digest(passwordDigestAlgoritm, pwd.getBytes("UTF-8"))); return password.toString(); } catch (NoSuchAlgorithmException e) { @@ -230,7 +229,7 @@ public class ContentLoaderService implements SynchronousBundleListener { throw new IllegalArgumentException(e.toString()); } } - + // ---------- SCR Integration --------------------------------------------- /** Activates this component, called by SCR before registering as a service */ @@ -247,7 +246,7 @@ public class ContentLoaderService implements SynchronousBundleListener { } else { passwordDigestAlgoritm = DEFAULT_PASSWORD_DIGEST_ALGORITHM; } - + Session session = null; try { session = this.getSession(); diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java index 18a483c..c4d7876 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java @@ -20,6 +20,7 @@ package org.apache.sling.jcr.contentloader.internal; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.Principal; import java.text.ParseException; @@ -57,7 +58,6 @@ import org.apache.jackrabbit.api.security.user.Authorizable; import org.apache.jackrabbit.api.security.user.Group; import org.apache.jackrabbit.api.security.user.User; import org.apache.jackrabbit.api.security.user.UserManager; -import org.apache.jackrabbit.util.Text; import org.apache.sling.jcr.base.util.AccessControlUtil; /** @@ -780,7 +780,7 @@ public class DefaultContentCreator implements ContentCreator { */ protected String hashPath(String item) throws RepositoryException { try { - String hash = Text.digest("sha1", INSTANCE_SEED + item, "UTF-8"); + String hash = digest("sha1", (INSTANCE_SEED + item).getBytes("UTF-8")); StringBuilder sb = new StringBuilder(); for (int i = 0; i < STORAGE_LEVELS; i++) { sb.append(hash, i * 2, (i * 2) + 2).append("/"); @@ -906,4 +906,33 @@ public class DefaultContentCreator implements ContentCreator { accessControlManager.setPolicy(resourcePath, updatedAcl); } + + /** + * used for the md5 + */ + private static final char[] hexTable = "0123456789abcdef".toCharArray(); + + /** + * Digest the plain string using the given algorithm. + * + * @param algorithm The alogrithm for the digest. This algorithm must be + * supported by the MessageDigest class. + * @param data the data to digest with the given algorithm + * @return The digested plain text String represented as Hex digits. + * @throws java.security.NoSuchAlgorithmException if the desired algorithm is not supported by + * the MessageDigest class. + */ + public static String digest(String algorithm, byte[] data) + throws NoSuchAlgorithmException { + + MessageDigest md = MessageDigest.getInstance(algorithm); + byte[] digest = md.digest(data); + StringBuffer res = new StringBuffer(digest.length * 2); + for (int i = 0; i < digest.length; i++) { + byte b = digest[i]; + res.append(hexTable[(b >> 4) & 15]); + res.append(hexTable[b & 15]); + } + return res.toString(); + } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
