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]>.

Reply via email to