Author: stillalex
Date: Fri Jul 20 07:17:34 2018
New Revision: 1836326

URL: http://svn.apache.org/viewvc?rev=1836326&view=rev
Log:
OAK-6662 Extend CredentialsSupport pluggability


Added:
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/AbstractCredentials.java
      - copied unchanged from r1809178, 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/AbstractCredentials.java
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java
      - copied, changed from r1809179, 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java
    
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java
      - copied, changed from r1809179, 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java
Modified:
    jackrabbit/oak/branches/1.6/   (props changed)
    jackrabbit/oak/branches/1.6/oak-core/   (props changed)
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CredentialsSupport.java
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java
    
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/package-info.java
    
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TestCredentialsSupport.java
    
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImplOSGiTest.java
    
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenLoginModuleCredentialsSupportTest.java

Propchange: jackrabbit/oak/branches/1.6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 20 07:17:34 2018
@@ -1,3 +1,3 @@
 /jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785916-1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789534,1789925,1789940,1789987,1790006,1790013,1790069,1790077,1790079,1790382,1790502-1790503,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799924,1800244,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260
 
,1802262,1802286,1802548,1802905,1802934,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808022,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809253,1809255-1809256,1809289,1809745,1811071-1811072,1811155,1811380,1811655,1811952,1811963,1811986,1813192,1813538,1814189,1814332,1814397,1815201,1815438,1815926,1817326,1817919,1817987-1817988,1817990,1818038,1818042,1818056,1818124,1818554,1818576,1818645,1819048,1819050,1821325,1821358,1821495,1821516,1821847,1822850,1823172,1823655,1825471,1826237,1826338,1826532,1826640,1826932,1826957,1827472,1827486,1827977,1829527,1829569,1829987,1830019,1830160,1830748,1831374,1832379,1832535,1833308,1834648-1834649,1834681,1835060
+/jackrabbit/oak/trunk:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785916-1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789534,1789925,1789940,1789987,1790006,1790013,1790069,1790077,1790079,1790382,1790502-1790503,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799924,1800244,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260
 
,1802262,1802286,1802548,1802905,1802934,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808022,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809178-1809179,1809253,1809255-1809256,1809289,1809745,1811071-1811072,1811155,1811380,1811655,1811952,1811963,1811986,1813192,1813538,1814189,1814332,1814397,1815201,1815438,1815926,1817326,1817919,1817987-1817988,1817990,1818038,1818042,1818056,1818124,1818554,1818576,1818645,1819048,1819050,1821325,1821358,1821495,1821516,1821847,1822850,1823172,1823655,1825471,1826237,1826338,1826532,1826640,1826932,1826957,1827472,1827486,1827977,1829527,1829569,1829987,1830019,1830160,1830748,1831374,1832379,1832535,1833308,1834648-1834649,1834681,1835060
 /jackrabbit/trunk:1345480

Propchange: jackrabbit/oak/branches/1.6/oak-core/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 20 07:17:34 2018
@@ -1,6 +1,6 @@
 /jackrabbit/oak/branches/1.0/oak-core:1665962
 /jackrabbit/oak/trunk:1834823
 /jackrabbit/oak/trunk/oak-blob-plugins:1819950
-/jackrabbit/oak/trunk/oak-core:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789441,1789534,1789925,1789940,1789987,1790006,1790013,1790069,1790077,1790079,1790382,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799861,1799924,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260,180226
 
2,1802286,1802548,1802905,1802934,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809253,1809255-1809256,1811380,1811952,1811963,1811986,1814332,1818645,1821325,1821358,1821516,1830160
+/jackrabbit/oak/trunk/oak-core:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783110,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784034,1784130,1784162,1784251,1784401,1784551,1784574,1784689,1785095,1785108,1785283,1785652,1785838,1785917,1785919,1785946,1786122,1787074,1787145,1787151,1787217,1787425,1788056,1788378,1788387-1788389,1788463,1788476,1788850,1789056,1789441,1789534,1789925,1789940,1789987,1790006,1790013,1790069,1790077,1790079,1790382,1792049,1792463,1792742,1792746,1793013,1793088,1793618,1793627,1793644,1794393,1794417,1794683,1795138,1795314,1795330,1795475,1795488,1795491,1795502,1795594,1795613,1795618,1796144,1796230,1796239,1796274,1796278,1796988,1797378,1798035,1798832,1798834,1799219,1799389,1799393,1799861,1799924,1800269,1800606,1800613,1800974,1801011,1801013,1801118-1801119,1801675,1802260,180226
 
2,1802286,1802548,1802905,1802934,1802938,1802973,1803026,1803247-1803249,1803951,1803953-1803955,1804437,1805851-1805852,1806668,1807308,1807688,1808125,1808128,1808142,1808240,1808246,1809024,1809026,1809131,1809163,1809178-1809179,1809253,1809255-1809256,1811380,1811952,1811963,1811986,1814332,1818645,1821325,1821358,1821516,1830160
 
/jackrabbit/oak/trunk/oak-store-document:1809866,1811575,1811702,1811709,1811823,1811835,1811931,1812739,1812750,1812753,1814407,1814499,1814579,1815450,1815466,1815940,1816436,1817379,1818301,1818303,1818903,1818906,1819421,1820199,1820661,1821130,1821477,1821487,1823163,1823169,1824962,1825442,1825470,1834610,1834823
 /jackrabbit/trunk/oak-core:1345480

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
 Fri Jul 20 07:17:34 2018
@@ -17,12 +17,19 @@
 package org.apache.jackrabbit.oak.security.authentication.token;
 
 import java.security.Principal;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
 import javax.annotation.Nonnull;
 
+import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Properties;
@@ -30,6 +37,7 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.apache.felix.scr.annotations.References;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.spi.commit.MoveTracker;
@@ -38,6 +46,7 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
+import 
org.apache.jackrabbit.oak.spi.security.authentication.credentials.CompositeCredentialsSupport;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.credentials.CredentialsSupport;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.credentials.SimpleCredentialsSupport;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.token.TokenConfiguration;
@@ -75,12 +84,17 @@ import org.apache.jackrabbit.oak.spi.sec
                 description = "Size of the salt used to generate the hash.",
                 intValue = PasswordUtil.DEFAULT_SALT_SIZE)
 })
-public class TokenConfigurationImpl extends ConfigurationBase implements 
TokenConfiguration {
-
+@References({
     @Reference(
-            cardinality = ReferenceCardinality.OPTIONAL_UNARY,
+            name = "credentialsSupport",
+            referenceInterface = CredentialsSupport.class,
+            cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
             policy = ReferencePolicy.DYNAMIC)
-    private CredentialsSupport credentialsSupport = 
SimpleCredentialsSupport.getInstance();
+})
+public class TokenConfigurationImpl extends ConfigurationBase implements 
TokenConfiguration {
+
+    private final Map<String, CredentialsSupport> credentialsSupport = new 
ConcurrentHashMap<>(
+            ImmutableMap.of(SimpleCredentialsSupport.class.getName(), 
SimpleCredentialsSupport.getInstance()));
 
     @SuppressWarnings("UnusedDeclaration")
     public TokenConfigurationImpl() {
@@ -98,17 +112,12 @@ public class TokenConfigurationImpl exte
         setParameters(ConfigurationParameters.of(properties));
     }
 
-    @SuppressWarnings("UnusedDeclaration")
     public void bindCredentialsSupport(CredentialsSupport credentialsSupport) {
-        this.credentialsSupport = credentialsSupport;
+        this.credentialsSupport.put(credentialsSupport.getClass().getName(), 
credentialsSupport);
     }
 
-    @SuppressWarnings("UnusedDeclaration")
     public void unbindCredentialsSupport(CredentialsSupport 
credentialsSupport) {
-        if (credentialsSupport == this.credentialsSupport) {
-            // reset to default implementation
-            this.credentialsSupport = SimpleCredentialsSupport.getInstance();
-        }
+        
this.credentialsSupport.remove(credentialsSupport.getClass().getName());
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---
@@ -136,6 +145,19 @@ public class TokenConfigurationImpl exte
     @Override
     public TokenProvider getTokenProvider(Root root) {
         UserConfiguration uc = 
getSecurityProvider().getConfiguration(UserConfiguration.class);
-        return new TokenProviderImpl(root, getParameters(), uc, 
credentialsSupport);
+        return new TokenProviderImpl(root, getParameters(), uc, 
newCredentialsSupport());
+    }
+
+    private CredentialsSupport newCredentialsSupport() {
+        if (!credentialsSupport.isEmpty()) {
+            return CompositeCredentialsSupport.newInstance(new 
Supplier<Collection<CredentialsSupport>>() {
+                @Override
+                public Collection<CredentialsSupport> get() {
+                    return ImmutableSet.copyOf(credentialsSupport.values());
+                }
+            });
+        } else {
+            return SimpleCredentialsSupport.getInstance();
+        }
     }
 }
\ No newline at end of file

Copied: 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java
 (from r1809179, 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java)
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java?p2=jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java&r1=1809179&r2=1836326&rev=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupport.java
 Fri Jul 20 07:17:34 2018
@@ -16,19 +16,20 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.credentials;
 
+import static com.google.common.collect.Maps.newHashMap;
+import static com.google.common.collect.Sets.newHashSet;
+
 import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
-import java.util.function.Supplier;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 import javax.jcr.Credentials;
 
+import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
-import static com.google.common.collect.Sets.newHashSet;
-import static com.google.common.collect.Maps.newHashMap;
 
 /**
  * Composite implementation of the

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CredentialsSupport.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CredentialsSupport.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CredentialsSupport.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CredentialsSupport.java
 Fri Jul 20 07:17:34 2018
@@ -33,7 +33,7 @@ public interface CredentialsSupport {
 
     /**
      * Returns all {@link Credentials credentials} classes supported by this
-     * implemenation.
+     * implementation.
      *
      * @return the supported {@link Credentials credentials} classes.
      */

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java
 Fri Jul 20 07:17:34 2018
@@ -29,8 +29,9 @@ import com.google.common.collect.Immutab
 import com.google.common.collect.Maps;
 
 /**
- * Implementation of the {@code SupportedCredentials} interface that handles
- * {@link javax.jcr.SimpleCredentials}.
+ * Implementation of the
+ * {@link 
org.apache.jackrabbit.oak.spi.security.authentication.credentials.CredentialsSupport}
+ * interface that handles {@link javax.jcr.SimpleCredentials}.
  */
 public final class SimpleCredentialsSupport implements CredentialsSupport {
 

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/package-info.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/package-info.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/package-info.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/package-info.java
 Fri Jul 20 07:17:34 2018
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("2.0.0")
+@Version("2.1.0")
 package org.apache.jackrabbit.oak.spi.security.authentication.credentials;
 
 import aQute.bnd.annotation.Version;
\ No newline at end of file

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TestCredentialsSupport.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TestCredentialsSupport.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TestCredentialsSupport.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TestCredentialsSupport.java
 Fri Jul 20 07:17:34 2018
@@ -23,7 +23,10 @@ import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 import javax.jcr.Credentials;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Maps;
+
 import 
org.apache.jackrabbit.oak.spi.security.authentication.credentials.CredentialsSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -67,7 +70,7 @@ public class TestCredentialsSupport impl
         if (credentials instanceof Creds) {
             return ((Creds) credentials).attributes;
         } else {
-            throw new IllegalArgumentException();
+            return ImmutableMap.of();
         }
     }
 
@@ -77,16 +80,16 @@ public class TestCredentialsSupport impl
             ((Creds) credentials).attributes.putAll(attributes);
             return true;
         } else {
-            throw new IllegalArgumentException();
+            return false;
         }
     }
 
     static final class Creds implements Credentials {
 
-        private final Map attributes;
+        private final Map<String, Object> attributes;
 
         Creds() {
-            attributes = new HashMap();
+            attributes = Maps.newHashMap();
             attributes.put(TokenConstants.TOKEN_ATTRIBUTE, "");
         }
     }

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImplOSGiTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImplOSGiTest.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImplOSGiTest.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImplOSGiTest.java
 Fri Jul 20 07:17:34 2018
@@ -75,7 +75,7 @@ public class TokenConfigurationImplOSGiT
 
         TokenProvider tp = tokenConfiguration.getTokenProvider(root);
 
-        assertFalse(tp.doCreateToken(sc));
+        assertTrue(tp.doCreateToken(sc));
         assertTrue(tp.doCreateToken(new TestCredentialsSupport.Creds()));
     }
 
@@ -85,7 +85,7 @@ public class TokenConfigurationImplOSGiT
         ServiceRegistration registration = 
context.bundleContext().registerService(CredentialsSupport.class.getName(), 
testSupport, new Hashtable());
 
         TokenProvider tp = tokenConfiguration.getTokenProvider(root);
-        assertFalse(tp.doCreateToken(sc));
+        assertTrue(tp.doCreateToken(sc));
         assertTrue(tp.doCreateToken(new TestCredentialsSupport.Creds()));
 
         registration.unregister();

Modified: 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenLoginModuleCredentialsSupportTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenLoginModuleCredentialsSupportTest.java?rev=1836326&r1=1836325&r2=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenLoginModuleCredentialsSupportTest.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenLoginModuleCredentialsSupportTest.java
 Fri Jul 20 07:17:34 2018
@@ -18,6 +18,8 @@ package org.apache.jackrabbit.oak.securi
 
 import java.util.Collections;
 import java.util.Map;
+
+import javax.jcr.SimpleCredentials;
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 
@@ -41,6 +43,7 @@ public class TokenLoginModuleCredentials
     private TokenConfigurationImpl tc;
     private CredentialsSupport credentialsSupport;
 
+    @Override
     @Before
     public void before() throws Exception {
         super.before();
@@ -108,4 +111,24 @@ public class TokenLoginModuleCredentials
             cs.close();
         }
     }
+
+    @Test
+    public void testSimpleCredentials() throws Exception {
+        SimpleCredentials credentials = (SimpleCredentials) 
getAdminCredentials();
+        credentials.setAttribute(TokenConstants.TOKEN_ATTRIBUTE, "");
+
+        ContentSession cs = null;
+        try {
+            cs = login(credentials);
+            assertEquals(credentials.getUserID(), 
cs.getAuthInfo().getUserID());
+            String token = 
credentials.getAttribute(TokenConstants.TOKEN_ATTRIBUTE).toString();
+            assertFalse(token.isEmpty());
+            cs.close();
+        } finally {
+
+            if (cs != null) {
+                cs.close();
+            }
+        }
+    }
 }

Copied: 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java
 (from r1809179, 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java)
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java?p2=jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java&p1=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java&r1=1809179&r2=1836326&rev=1836326&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/CompositeCredentialsSupportTest.java
 Fri Jul 20 07:17:34 2018
@@ -16,12 +16,14 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.credentials;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import javax.jcr.Credentials;
 import javax.jcr.SimpleCredentials;
 
+import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
@@ -40,7 +42,12 @@ public class CompositeCredentialsSupport
     private final TestCredentialsSupport tcs = new TestCredentialsSupport();
 
     private final CredentialsSupport credentialsSupport = 
CompositeCredentialsSupport
-            .newInstance(() -> 
newHashSet(SimpleCredentialsSupport.getInstance(), tcs));
+            .newInstance(new Supplier<Collection<CredentialsSupport>>() {
+                @Override
+                public Collection<CredentialsSupport> get() {
+                    return newHashSet(SimpleCredentialsSupport.getInstance(), 
tcs);
+                }
+            });
 
     @Test
     public void testGetCredentialClasses() {
@@ -131,7 +138,7 @@ public class CompositeCredentialsSupport
 
         @Override
         public Set<Class> getCredentialClasses() {
-            return ImmutableSet.of(TestCredentials.class);
+            return ImmutableSet.<Class>of(TestCredentials.class);
         }
 
         @Override


Reply via email to