use of org.apereo.cas.ticket.Ticket in project cas by apereo.
the class DynamoDbTicketRegistry method addTicket.
@Override
public void addTicket(final Ticket ticket) {
try {
LOGGER.debug("Adding ticket [{}] with ttl [{}s]", ticket.getId(), ticket.getExpirationPolicy().getTimeToLive());
final Ticket encTicket = encodeTicket(ticket);
this.dbTableService.put(ticket, encTicket);
} catch (final Exception e) {
LOGGER.error(e.getMessage(), e);
}
}
use of org.apereo.cas.ticket.Ticket in project cas by apereo.
the class DynamoDbTicketRegistry method getTicket.
@Override
public Ticket getTicket(final String ticketId) {
final String encTicketId = encodeTicketId(ticketId);
if (StringUtils.isNotBlank(encTicketId)) {
LOGGER.debug("Retrieving ticket [{}] ", ticketId);
final Ticket ticket = this.dbTableService.get(ticketId);
return decodeTicket(ticket);
}
return null;
}
use of org.apereo.cas.ticket.Ticket in project cas by apereo.
the class DynamoDbTicketRegistryFacilitator method get.
/**
* Get ticket.
*
* @param ticketId the ticket id
* @return the ticket
*/
public Ticket get(final String ticketId) {
final TicketDefinition metadata = this.ticketCatalog.find(ticketId);
if (metadata != null) {
final Map<String, AttributeValue> keys = new HashMap<>();
keys.put(ColumnNames.ID.getName(), new AttributeValue(ticketId));
final GetItemRequest request = new GetItemRequest().withKey(keys).withTableName(metadata.getProperties().getStorageName());
LOGGER.debug("Submitting request [{}] to get ticket item [{}]", request, ticketId);
final Map<String, AttributeValue> returnItem = amazonDynamoDBClient.getItem(request).getItem();
if (returnItem != null) {
final Ticket ticket = deserializeTicket(returnItem);
LOGGER.debug("Located ticket [{}]", ticket);
return ticket;
}
} else {
LOGGER.warn("No ticket definition could be found in the catalog to match [{}]", ticketId);
}
return null;
}
use of org.apereo.cas.ticket.Ticket in project cas by apereo.
the class DynamoDbTicketRegistryFacilitator method createTicketTables.
/**
* Create ticket tables.
*
* @param deleteTables the delete tables
*/
public void createTicketTables(final boolean deleteTables) {
final Collection<TicketDefinition> metadata = this.ticketCatalog.findAll();
metadata.forEach(Unchecked.consumer(r -> {
final CreateTableRequest request = new CreateTableRequest().withAttributeDefinitions(new AttributeDefinition(ColumnNames.ID.getName(), ScalarAttributeType.S)).withKeySchema(new KeySchemaElement(ColumnNames.ID.getName(), KeyType.HASH)).withProvisionedThroughput(new ProvisionedThroughput(dynamoDbProperties.getReadCapacity(), dynamoDbProperties.getWriteCapacity())).withTableName(r.getProperties().getStorageName());
if (deleteTables) {
final DeleteTableRequest delete = new DeleteTableRequest(r.getProperties().getStorageName());
LOGGER.debug("Sending delete request [{}] to remove table if necessary", delete);
TableUtils.deleteTableIfExists(amazonDynamoDBClient, delete);
}
LOGGER.debug("Sending delete request [{}] to create table", request);
TableUtils.createTableIfNotExists(amazonDynamoDBClient, request);
LOGGER.debug("Waiting until table [{}] becomes active...", request.getTableName());
TableUtils.waitUntilActive(amazonDynamoDBClient, request.getTableName());
final DescribeTableRequest describeTableRequest = new DescribeTableRequest().withTableName(request.getTableName());
LOGGER.debug("Sending request [{}] to obtain table description...", describeTableRequest);
final TableDescription tableDescription = amazonDynamoDBClient.describeTable(describeTableRequest).getTable();
LOGGER.debug("Located newly created table with description: [{}]", tableDescription);
}));
}
use of org.apereo.cas.ticket.Ticket in project cas by apereo.
the class IgniteTicketRegistry method addTicket.
@Override
public void addTicket(final Ticket ticketToAdd) {
final Ticket ticket = encodeTicket(ticketToAdd);
LOGGER.debug("Adding ticket [{}] to the cache [{}]", ticket.getId(), this.ticketIgniteCache.getName());
this.ticketIgniteCache.withExpiryPolicy(new ExpiryPolicy() {
@Override
public Duration getExpiryForCreation() {
return new Duration(TimeUnit.SECONDS, ticket.getExpirationPolicy().getTimeToLive());
}
@Override
public Duration getExpiryForAccess() {
final long idleTime = ticket.getExpirationPolicy().getTimeToIdle() <= 0 ? ticket.getExpirationPolicy().getTimeToLive() : ticket.getExpirationPolicy().getTimeToIdle();
return new Duration(TimeUnit.SECONDS, idleTime);
}
@Override
public Duration getExpiryForUpdate() {
return new Duration(TimeUnit.SECONDS, ticket.getExpirationPolicy().getTimeToLive());
}
}).put(ticket.getId(), ticket);
}
Aggregations