Class AbstractTicketSerializer<T extends Ticket>
java.lang.Object
net.shibboleth.idp.cas.ticket.serialization.impl.AbstractTicketSerializer<T>
- Type Parameters:
T
- type of ticket
- All Implemented Interfaces:
Component
,InitializableComponent
,StorageSerializer<T>
- Direct Known Subclasses:
ProxyGrantingTicketSerializer
,ProxyTicketSerializer
,ServiceTicketSerializer
public abstract class AbstractTicketSerializer<T extends Ticket>
extends Object
implements StorageSerializer<T>
Base class for ticket serializers that use a simple field-delimited serialization strategy.
Tickets are expected to be stored using the ticket ID as a key, so the ticket ID is not contained as part
of the serialized form.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
Authentication instant field name.private static final String
Authentication method field name.private static final String
Consented attribute IDs field name.private static final String
Expiration instant field name.private final javax.json.stream.JsonGeneratorFactory
JSON generator factory.private final org.slf4j.Logger
Logger instance.private static final String
Authenticated canonical principal name field.private final javax.json.JsonReaderFactory
JSON reader factory.private static final String
Service field name.private static final String
Session ID field name.private static final String
Supplemental ticket state field name. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract T
createTicket
(javax.json.JsonObject o, String id, String service, Instant expiry) Create a ticket.deserialize
(long version, String context, String key, String value, Long expiration) void
boolean
protected abstract void
serializeInternal
(javax.json.stream.JsonGenerator generator, T ticket) Serialize a ticket.
-
Field Details
-
SERVICE_FIELD
Service field name.- See Also:
-
EXPIRATION_FIELD
Expiration instant field name.- See Also:
-
STATE_FIELD
Supplemental ticket state field name.- See Also:
-
SESSION_FIELD
Session ID field name.- See Also:
-
PRINCIPAL_FIELD
Authenticated canonical principal name field.- See Also:
-
AUTHN_INSTANT_FIELD
Authentication instant field name.- See Also:
-
AUTHN_METHOD_FIELD
Authentication method field name.- See Also:
-
CONSENTED_ATTRS_FIELD
Consented attribute IDs field name.- See Also:
-
logger
@Nonnull private final org.slf4j.Logger loggerLogger instance. -
generatorFactory
@Nonnull private final javax.json.stream.JsonGeneratorFactory generatorFactoryJSON generator factory. -
readerFactory
@Nonnull private final javax.json.JsonReaderFactory readerFactoryJSON reader factory.
-
-
Constructor Details
-
AbstractTicketSerializer
public AbstractTicketSerializer()
-
-
Method Details
-
initialize
- Specified by:
initialize
in interfaceInitializableComponent
- Throws:
ComponentInitializationException
-
isInitialized
public boolean isInitialized()- Specified by:
isInitialized
in interfaceInitializableComponent
-
serialize
- Specified by:
serialize
in interfaceStorageSerializer<T extends Ticket>
- Throws:
IOException
-
deserialize
@Nonnull public T deserialize(long version, @Nonnull @NotEmpty String context, @Nonnull @NotEmpty String key, @Nonnull @NotEmpty String value, @Nullable Long expiration) throws IOException - Specified by:
deserialize
in interfaceStorageSerializer<T extends Ticket>
- Throws:
IOException
-
createTicket
protected abstract T createTicket(@Nonnull javax.json.JsonObject o, @Nonnull String id, @Nonnull String service, @Nonnull Instant expiry) Create a ticket.- Parameters:
o
- JSON objectid
- ticket IDservice
- service that requested the ticketexpiry
- expiration instant- Returns:
- the newly created ticket
-
serializeInternal
protected abstract void serializeInternal(@Nonnull javax.json.stream.JsonGenerator generator, @Nonnull T ticket) Serialize a ticket.- Parameters:
generator
- JSON generatorticket
- ticket
-