[java-identity-provider COMMIT] in /trunk/idp-authn-api/src: main/java/net/shibboleth/idp/authn/DefaultAuthentication...

noreply at shibboleth.net noreply at shibboleth.net
Wed Dec 18 23:40:56 EST 2013


Author: dfisher
Date: Wed Dec 18 23:40:56 2013
New Revision: 5061

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5061&view=rev
Log:
Add PrincipalSerializer interface.
Move principal serialization concerns out of DefaultAuthenticationResultSerializer.
Fixes IDP-344.

Added:
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/GenericPrincipalSerializer.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/LdapPrincipalSerializer.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/PrincipalSerializer.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/UsernamePrincipalSerializer.java
    trunk/idp-authn-api/src/test/resources/data/net/shibboleth/idp/authn/LDAPAuthenticationResult.json
Modified:
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/DefaultAuthenticationResultSerializer.java
    trunk/idp-authn-api/src/test/java/net/shibboleth/idp/authn/DefaultAuthenticationResultSerializerTest.java

Modified: trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/DefaultAuthenticationResultSerializer.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/DefaultAuthenticationResultSerializer.java?rev=5061&r1=5060&r2=5061&view=diff
==============================================================================
--- trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/DefaultAuthenticationResultSerializer.java (original)
+++ trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/DefaultAuthenticationResultSerializer.java Wed Dec 18 23:40:56 2013
@@ -20,12 +20,9 @@
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.StringWriter;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
 import java.security.Principal;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
@@ -33,34 +30,29 @@
 import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonException;
-import javax.json.JsonNumber;
 import javax.json.JsonObject;
 import javax.json.JsonReader;
-import javax.json.JsonString;
+import javax.json.JsonReaderFactory;
 import javax.json.JsonStructure;
 import javax.json.JsonValue;
 import javax.json.stream.JsonGenerator;
+import javax.json.stream.JsonGeneratorFactory;
 import javax.security.auth.Subject;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
 
 import org.opensaml.storage.StorageSerializer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Strings;
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
-import com.google.common.collect.ImmutableBiMap;
-
 /**
- * Handles serialization of results that carry only custom {@link Principal} objects of a simple
- * nature that can be reconstructed via a String-argument constructor.
+ * Handles serialization of results that carry only custom {@link Principal} objects of a simple nature that can be
+ * reconstructed via a String-argument constructor.
  * 
- * <p>The expiration of the resulting record <strong>MUST</strong> be set to the last activity
- * instant of the object plus an optional offset value supplied to the constructor.</p>
+ * <p>
+ * The expiration of the resulting record <strong>MUST</strong> be set to the last activity instant of the object plus
+ * an optional offset value supplied to the constructor.
+ * </p>
  */
 public class DefaultAuthenticationResultSerializer implements StorageSerializer<AuthenticationResult> {
 
@@ -73,58 +65,84 @@
     /** Field name of principal array. */
     private static final String PRINCIPAL_ARRAY_FIELD = "princ";
 
-    /** Field name of principal type. */
-    private static final String PRINCIPAL_TYPE_FIELD = "typ";
-
-    /** Field name of principal name. */
-    private static final String PRINCIPAL_NAME_FIELD = "nam";
-
-    /** Field name of {@link UsernamePrincipal}. */
-    private static final String USERNAME_FIELD = "U";
-    
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(DefaultAuthenticationResultSerializer.class);
-    
-    /** Shrinkage of long constants into symbolic numbers. */
-    @Nonnull private BiMap<String,Integer> symbolics;
-    
-    /** A cache of Principal types that support string-based construction. */
-    @Nonnull private final Set<Class<? extends Principal>> compatiblePrincipalTypes;
-    
+
+    /** JSON generator factory. */
+    @Nonnull private final JsonGeneratorFactory generatorFactory = Json.createGeneratorFactory(null);
+
+    /** JSON reader factory. */
+    @Nonnull private final JsonReaderFactory readerFactory = Json.createReaderFactory(null);
+
+    /** Principal serializers. */
+    @Nonnull private final Set<PrincipalSerializer<String>> principalSerializers;
+

[... 371 lines stripped ...]


More information about the commits mailing list