Package net.shibboleth.idp.session
Class AbstractSPSessionSerializer
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.idp.session.AbstractSPSessionSerializer
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,StorageSerializer<SPSession>
- Direct Known Subclasses:
BasicSPSessionSerializer,CASSPSessionSerializer,SAML1SPSessionSerializer,SAML2SPSessionSerializer
@ThreadSafe
public abstract class AbstractSPSessionSerializer
extends AbstractInitializableComponent
implements StorageSerializer<SPSession>
Base class for
SPSession serializers that handles data common to all such objects.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final StringField name of creation instant.private final DurationMilliseconds to subtract from record expiration to establish session expiration value.private final org.slf4j.LoggerClass logger.private static final StringField name of service ID. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSPSessionSerializer(Duration offset) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondeserialize(long version, String context, String key, String value, Long expiration) protected abstract SPSessiondoDeserialize(JsonObject obj, String id, Instant creation, Instant expiration) Implement this method to return the appropriate type of object, populated with the basic information supplied.protected voiddoSerializeAdditional(SPSession instance, JsonGenerator generator) Override this method to handle serialization of additional data.Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
SERVICE_ID_FIELD
Field name of service ID.- See Also:
-
CREATION_INSTANT_FIELD
Field name of creation instant.- See Also:
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
expirationOffset
Milliseconds to subtract from record expiration to establish session expiration value.
-
-
Constructor Details
-
AbstractSPSessionSerializer
Constructor.- Parameters:
offset- time to subtract from record expiration to establish session expiration value
-
-
Method Details
-
serialize
- Specified by:
serializein interfaceStorageSerializer<SPSession>- Throws:
IOException
-
deserialize
@Nonnull public SPSession deserialize(long version, @Nonnull @NotEmpty String context, @Nonnull @NotEmpty String key, @Nonnull @NotEmpty String value, @Nullable Long expiration) throws IOException - Specified by:
deserializein interfaceStorageSerializer<SPSession>- Throws:
IOException
-
doSerializeAdditional
Override this method to handle serialization of additional data.The serialization "context" is the continuation of a JSON struct.
- Parameters:
instance- object to serializegenerator- JSON generator to write to
-
doDeserialize
@Nonnull protected abstract SPSession doDeserialize(@Nonnull JsonObject obj, @Nonnull @NotEmpty String id, @Nonnull Instant creation, @Nonnull Instant expiration) throws IOException Implement this method to return the appropriate type of object, populated with the basic information supplied.The JSON object supplied is a structure that may contain additional data created by the concrete subclass during serialization.
- Parameters:
obj- JSON structure to parseid- the identifier of the service associated with this sessioncreation- creation time of sessionexpiration- expiration time of session- Returns:
- the newly constructed object
- Throws:
IOException- if an error occurs during deserialization
-