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
Fields Modifier and Type Field Description private static String
AUTHN_INSTANT_FIELD
Authentication instant field name.private static String
AUTHN_METHOD_FIELD
Authentication method field name.private static String
EXPIRATION_FIELD
Expiration instant field name.private javax.json.stream.JsonGeneratorFactory
generatorFactory
JSON generator factory.private org.slf4j.Logger
logger
Logger instance.private static String
PRINCIPAL_FIELD
Authenticated canonical principal name field.private javax.json.JsonReaderFactory
readerFactory
JSON reader factory.private static String
SERVICE_FIELD
Service field name.private static String
SESSION_FIELD
Session ID field name.private static String
STATE_FIELD
Supplemental ticket state field name. -
Constructor Summary
Constructors Constructor Description AbstractTicketSerializer()
-
Method Summary
Modifier and Type Method Description protected abstract T
createTicket(javax.json.JsonObject o, String id, String service, Instant expiry)
Create a ticket.T
deserialize(long version, String context, String key, String value, Long expiration)
void
initialize()
boolean
isInitialized()
String
serialize(T ticket)
protected abstract void
serializeInternal(javax.json.stream.JsonGenerator generator, T ticket)
Serialize a ticket.
-
Field Details
-
SERVICE_FIELD
Service field name.- See Also:
- Constant Field Values
-
EXPIRATION_FIELD
Expiration instant field name.- See Also:
- Constant Field Values
-
STATE_FIELD
Supplemental ticket state field name.- See Also:
- Constant Field Values
-
SESSION_FIELD
Session ID field name.- See Also:
- Constant Field Values
-
PRINCIPAL_FIELD
Authenticated canonical principal name field.- See Also:
- Constant Field Values
-
AUTHN_INSTANT_FIELD
Authentication instant field name.- See Also:
- Constant Field Values
-
AUTHN_METHOD_FIELD
Authentication method field name.- See Also:
- Constant Field Values
-
logger
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
-