Package net.shibboleth.idp.authn.impl
Class DefaultAuthenticationResultSerializer
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- net.shibboleth.idp.authn.impl.DefaultAuthenticationResultSerializer
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,StorageSerializer<AuthenticationResult>
public class DefaultAuthenticationResultSerializer extends AbstractInitializableComponent implements StorageSerializer<AuthenticationResult>
Handles serialization of results, delegating handling ofPrincipalobjects to one or morePrincipalSerializerplugins.
-
-
Field Summary
Fields Modifier and Type Field Description private static StringADDTL_DATA_FIELDField name of private credentials array.private static StringAUTHN_INSTANT_FIELDField name of authentication instant.private AuthenticationResultPrincipalSerializerauthnResultPrincipalSerializerSpecialized serializer forAuthenticationResultPrincipalthat requires a circular ref.private static StringFLOW_ID_FIELDField name of Flow ID.private javax.json.stream.JsonGeneratorFactorygeneratorFactoryJSON generator factory.private GenericPrincipalSerializergenericSerializerGeneric principal serializer for any unsupported principals.private org.slf4j.LoggerlogClass logger.private static StringPRINCIPAL_ARRAY_FIELDField name of principal array.private Collection<PrincipalSerializer<String>>principalSerializersPrincipal serializers.private PrincipalServiceManagerprincipalServiceManagerManager for principal services.private static StringPRIV_CREDS_ARRAY_FIELDField name of private credentials array.private static StringPUB_CREDS_ARRAY_FIELDField name of public credentials array.private javax.json.JsonReaderFactoryreaderFactoryJSON reader factory.private static StringX509_CREDS_ARRAY_FIELDField name of X.509 certificates array.
-
Constructor Summary
Constructors Constructor Description DefaultAuthenticationResultSerializer()Constructor.DefaultAuthenticationResultSerializer(PrincipalServiceManager manager, GenericPrincipalSerializer defaultSerializer)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AuthenticationResultdeserialize(long version, String context, String key, String value, Long expiration)private PrincipaldeserializePrincipal(javax.json.JsonValue jsonValue)Attempt to deserialize a principal with the registered and default serializers.voiddoInitialize()GenericPrincipalSerializergetGenericPrincipalSerializer()Returns theGenericPrincipalSerializerused for any unsupported principals found in theAuthenticationResult.Stringserialize(AuthenticationResult instance)private voidserializePrincipal(javax.json.stream.JsonGenerator generator, Principal principal)Attempt to serialize a principal with the registered and default serializers.-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, initialize, isDestroyed, isInitialized
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Field Detail
-
FLOW_ID_FIELD
@Nonnull @NotEmpty private static final String FLOW_ID_FIELD
Field name of Flow ID.- See Also:
- Constant Field Values
-
AUTHN_INSTANT_FIELD
@Nonnull @NotEmpty private static final String AUTHN_INSTANT_FIELD
Field name of authentication instant.- See Also:
- Constant Field Values
-
PRINCIPAL_ARRAY_FIELD
@Nonnull @NotEmpty private static final String PRINCIPAL_ARRAY_FIELD
Field name of principal array.- See Also:
- Constant Field Values
-
PUB_CREDS_ARRAY_FIELD
@Nonnull @NotEmpty private static final String PUB_CREDS_ARRAY_FIELD
Field name of public credentials array.- See Also:
- Constant Field Values
-
X509_CREDS_ARRAY_FIELD
@Nonnull @NotEmpty private static final String X509_CREDS_ARRAY_FIELD
Field name of X.509 certificates array.- See Also:
- Constant Field Values
-
PRIV_CREDS_ARRAY_FIELD
@Nonnull @NotEmpty private static final String PRIV_CREDS_ARRAY_FIELD
Field name of private credentials array.- See Also:
- Constant Field Values
-
ADDTL_DATA_FIELD
@Nonnull @NotEmpty private static final String ADDTL_DATA_FIELD
Field name of private credentials array.- See Also:
- Constant Field Values
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
generatorFactory
@Nonnull private final javax.json.stream.JsonGeneratorFactory generatorFactory
JSON generator factory.
-
readerFactory
@Nonnull private final javax.json.JsonReaderFactory readerFactory
JSON reader factory.
-
principalServiceManager
@Nonnull private final PrincipalServiceManager principalServiceManager
Manager for principal services.
-
principalSerializers
@Nonnull @NonnullElements private Collection<PrincipalSerializer<String>> principalSerializers
Principal serializers.
-
authnResultPrincipalSerializer
@Nonnull private final AuthenticationResultPrincipalSerializer authnResultPrincipalSerializer
Specialized serializer forAuthenticationResultPrincipalthat requires a circular ref.
-
genericSerializer
@Nonnull private final GenericPrincipalSerializer genericSerializer
Generic principal serializer for any unsupported principals.
-
-
Constructor Detail
-
DefaultAuthenticationResultSerializer
public DefaultAuthenticationResultSerializer() throws ComponentInitializationExceptionConstructor.This is mostly left to facilitate tests that can live with essentially no real serialization support.
- Throws:
ComponentInitializationException- if unable to instantiate internal defaults
-
DefaultAuthenticationResultSerializer
public DefaultAuthenticationResultSerializer(@Nonnull PrincipalServiceManager manager, @Nonnull GenericPrincipalSerializer defaultSerializer)Constructor.- Parameters:
manager-PrincipalServiceManagerto usedefaultSerializer- the default serializer to use- Since:
- 4.1.0
-
-
Method Detail
-
getGenericPrincipalSerializer
@Nonnull public GenericPrincipalSerializer getGenericPrincipalSerializer()
Returns theGenericPrincipalSerializerused for any unsupported principals found in theAuthenticationResult.- Returns:
- generic principal serializer
-
doInitialize
public void doInitialize() throws ComponentInitializationException- Overrides:
doInitializein classAbstractInitializableComponent- Throws:
ComponentInitializationException
-
serialize
@Nonnull @NotEmpty public String serialize(@Nonnull AuthenticationResult instance) throws IOException
- Specified by:
serializein interfaceStorageSerializer<AuthenticationResult>- Throws:
IOException
-
deserialize
@Nonnull public AuthenticationResult deserialize(long version, @Nonnull @NotEmpty String context, @Nonnull @NotEmpty String key, @Nonnull @NotEmpty String value, @Nullable Long expiration) throws IOException
- Specified by:
deserializein interfaceStorageSerializer<AuthenticationResult>- Throws:
IOException
-
serializePrincipal
private void serializePrincipal(@Nonnull javax.json.stream.JsonGenerator generator, @Nonnull Principal principal) throws IOExceptionAttempt to serialize a principal with the registered and default serializers.- Parameters:
generator- the JSON context to write intoprincipal- object to serialize- Throws:
IOException- if serialization fails
-
deserializePrincipal
@Nullable private Principal deserializePrincipal(@Nonnull javax.json.JsonValue jsonValue) throws IOException
Attempt to deserialize a principal with the registered and default serializers.- Parameters:
jsonValue- the JSON object to parse- Returns:
- the
Principalrecovered, or null - Throws:
IOException- if an error occurs
-
-