[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