You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2016/04/19 10:49:24 UTC

svn commit: r1739867 - in /jackrabbit/oak/trunk/oak-auth-external/src: main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/ test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/

Author: angela
Date: Tue Apr 19 08:49:24 2016
New Revision: 1739867

URL: http://svn.apache.org/viewvc?rev=1739867&view=rev
Log:
OAK-4231 : DefaultSyncContext creates Value of type String for Binary|Inputstream Object

Modified:
    jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContext.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java

Modified: jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContext.java?rev=1739867&r1=1739866&r2=1739867&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContext.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContext.java Tue Apr 19 08:49:24 2016
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.spi.security.authentication.external.basic;
 
 import java.io.ByteArrayInputStream;
+import java.io.InputStream;
 import java.math.BigDecimal;
 import java.security.Principal;
 import java.util.ArrayList;
@@ -670,6 +671,10 @@ public class DefaultSyncContext implemen
         } else if (v instanceof byte[]) {
             Binary bin = valueFactory.createBinary(new ByteArrayInputStream((byte[])v));
             return valueFactory.createValue(bin);
+        } else if (v instanceof Binary) {
+            return valueFactory.createValue((Binary) v);
+        } else if (v instanceof InputStream) {
+            return valueFactory.createValue((InputStream) v);
         } else if (v instanceof char[]) {
             return valueFactory.createValue(new String((char[]) v));
         } else {

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java?rev=1739867&r1=1739866&r2=1739867&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java Tue Apr 19 08:49:24 2016
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external.basic;
 
+import java.io.ByteArrayInputStream;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -24,7 +25,10 @@ import java.util.UUID;
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import javax.jcr.Binary;
+import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
+import javax.jcr.Value;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -34,8 +38,6 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
-import org.apache.jackrabbit.oak.namepath.NamePathMapper;
-import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef;
@@ -64,13 +66,14 @@ public class DefaultSyncContextTest exte
     @Before
     public void before() throws Exception {
         super.before();
-        syncCtx = new DefaultSyncContext(config, idp, getUserManager(root), new ValueFactoryImpl(root, NamePathMapper.DEFAULT));
+        syncCtx = new DefaultSyncContext(config, idp, getUserManager(root), getValueFactory());
     }
 
     @After
     public void after() throws Exception {
         try {
             syncCtx.close();
+            root.refresh();
             UserManager umgr = getUserManager(root);
             Iterator<ExternalIdentity> ids = Iterators.concat(idp.listGroups(), idp.listUsers());
             while (ids.hasNext()) {
@@ -342,6 +345,36 @@ public class DefaultSyncContextTest exte
     }
 
     /**
+     * @see <a href="https://issues.apache.org/jira/browse/OAK-4231">OAK-4231</a>
+     */
+    @Test
+    public void testCreateValueFromBinary() throws Exception {
+        byte[] bytes = new byte[]{'a', 'b'};
+        ByteArrayInputStream is = new ByteArrayInputStream(bytes);
+        Binary binary = getValueFactory().createBinary(is);
+
+        Value v = syncCtx.createValue(binary);
+        assertNotNull(v);
+        assertEquals(PropertyType.BINARY, v.getType());
+        assertEquals(binary, v.getBinary());
+    }
+
+    /**
+     * @see <a href="https://issues.apache.org/jira/browse/OAK-4231">OAK-4231</a>
+     */
+    @Test
+    public void testCreateValueFromInputStream() throws Exception {
+        byte[] bytes = new byte[]{'a', 'b'};
+        ByteArrayInputStream is = new ByteArrayInputStream(bytes);
+        Binary binary = getValueFactory().createBinary(is);
+
+        Value v = syncCtx.createValue(is);
+        assertNotNull(v);
+        assertEquals(PropertyType.BINARY, v.getType());
+        assertEquals(binary, v.getBinary());
+    }
+
+    /**
      * ExternalIdentity implementation that is neither user nor group.
      */
     private final class TestExternalIdentity implements ExternalIdentity {