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:
net.shibboleth.utilities.java.support.component.Component,net.shibboleth.utilities.java.support.component.DestructableComponent,net.shibboleth.utilities.java.support.component.InitializableComponent,org.opensaml.storage.StorageSerializer<net.shibboleth.idp.authn.AuthenticationResult>
public class DefaultAuthenticationResultSerializer extends net.shibboleth.utilities.java.support.component.AbstractInitializableComponent implements org.opensaml.storage.StorageSerializer<net.shibboleth.idp.authn.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<net.shibboleth.idp.authn.principal.PrincipalSerializer<String>>principalSerializersPrincipal serializers.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.
-
Constructor Summary
Constructors Constructor Description DefaultAuthenticationResultSerializer()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description net.shibboleth.idp.authn.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(net.shibboleth.idp.authn.AuthenticationResult instance)private voidserializePrincipal(javax.json.stream.JsonGenerator generator, Principal principal)Attempt to serialize a principal with the registered and default serializers.voidsetPrincipalSerializers(Collection<net.shibboleth.idp.authn.principal.PrincipalSerializer<String>> serializers)Set the principal serializers used for principals found in theAuthenticationResult.-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, initialize, isDestroyed, 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
-
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.
-
principalSerializers
@Nonnull @NonnullElements private Collection<net.shibboleth.idp.authn.principal.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.
-
-
Method Detail
-
setPrincipalSerializers
public void setPrincipalSerializers(@Nonnull @NonnullElements Collection<net.shibboleth.idp.authn.principal.PrincipalSerializer<String>> serializers)Set the principal serializers used for principals found in theAuthenticationResult.- Parameters:
serializers- principal serializers to use
-
getGenericPrincipalSerializer
@Nonnull public GenericPrincipalSerializer getGenericPrincipalSerializer()
Returns theGenericPrincipalSerializerused for any unsupported principals found in theAuthenticationResult.- Returns:
- generic principal serializer
-
doInitialize
public void doInitialize() throws net.shibboleth.utilities.java.support.component.ComponentInitializationException- Overrides:
doInitializein classnet.shibboleth.utilities.java.support.component.AbstractInitializableComponent- Throws:
net.shibboleth.utilities.java.support.component.ComponentInitializationException
-
serialize
@Nonnull @NotEmpty public String serialize(@Nonnull net.shibboleth.idp.authn.AuthenticationResult instance) throws IOException
- Specified by:
serializein interfaceorg.opensaml.storage.StorageSerializer<net.shibboleth.idp.authn.AuthenticationResult>- Throws:
IOException
-
deserialize
@Nonnull public net.shibboleth.idp.authn.AuthenticationResult deserialize(long version, @Nonnull @NotEmpty String context, @Nonnull @NotEmpty String key, @Nonnull @NotEmpty String value, @Nullable Long expiration) throws IOException- Specified by:
deserializein interfaceorg.opensaml.storage.StorageSerializer<net.shibboleth.idp.authn.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
-
-