Package net.shibboleth.idp.session
Class AbstractSPSessionSerializer
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- net.shibboleth.idp.session.AbstractSPSessionSerializer
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,StorageSerializer<SPSession>
@ThreadSafe public abstract class AbstractSPSessionSerializer extends AbstractInitializableComponent implements StorageSerializer<SPSession>
Base class forSPSessionserializers that handles data common to all such objects.
-
-
Field Summary
Fields Modifier and Type Field Description private static StringCREATION_INSTANT_FIELDField name of creation instant.private DurationexpirationOffsetMilliseconds to subtract from record expiration to establish session expiration value.private org.slf4j.LoggerlogClass logger.private static StringSERVICE_ID_FIELDField name of service ID.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractSPSessionSerializer(Duration offset)Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description SPSessiondeserialize(long version, String context, String key, String value, Long expiration)protected abstract SPSessiondoDeserialize(javax.json.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, javax.json.stream.JsonGenerator generator)Override this method to handle serialization of additional data.Stringserialize(SPSession instance)-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, 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
-
SERVICE_ID_FIELD
@Nonnull @NotEmpty private static final String SERVICE_ID_FIELD
Field name of service ID.- See Also:
- Constant Field Values
-
CREATION_INSTANT_FIELD
@Nonnull @NotEmpty private static final String CREATION_INSTANT_FIELD
Field name of creation instant.- See Also:
- Constant Field Values
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
expirationOffset
@Nonnull private final Duration expirationOffset
Milliseconds to subtract from record expiration to establish session expiration value.
-
-
Constructor Detail
-
AbstractSPSessionSerializer
protected AbstractSPSessionSerializer(@Nonnull Duration offset)Constructor.- Parameters:
offset- time to subtract from record expiration to establish session expiration value
-
-
Method Detail
-
serialize
@Nonnull @NotEmpty public String serialize(@Nonnull SPSession instance) throws IOException
- 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
protected void doSerializeAdditional(@Nonnull SPSession instance, @Nonnull javax.json.stream.JsonGenerator generator)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 javax.json.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
-
-