mirror of
https://gitee.com/dromara/MaxKey.git
synced 2026-05-18 14:28:08 +08:00
v1.2.1 GA
This commit is contained in:
@@ -1,22 +1,30 @@
|
||||
package org.maxkey.authz.cas.endpoint.ticket.service;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.time.Duration;
|
||||
|
||||
import org.ehcache.UserManagedCache;
|
||||
import org.ehcache.config.builders.ExpiryPolicyBuilder;
|
||||
import org.ehcache.config.builders.UserManagedCacheBuilder;
|
||||
import org.maxkey.authz.cas.endpoint.ticket.Ticket;
|
||||
|
||||
|
||||
public class InMemoryTicketServices extends RandomServiceTicketServices {
|
||||
|
||||
protected final static ConcurrentHashMap<String, Ticket> authorizationTicketStore = new ConcurrentHashMap<String, Ticket>();
|
||||
protected final static UserManagedCache<String, Ticket> casTicketStore =
|
||||
UserManagedCacheBuilder.newUserManagedCacheBuilder(String.class, Ticket.class)
|
||||
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(60)))
|
||||
.build(true);
|
||||
|
||||
|
||||
@Override
|
||||
protected void store(String ticketId, Ticket ticket) {
|
||||
this.authorizationTicketStore.put(ticketId, ticket);
|
||||
casTicketStore.put(ticketId, ticket);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Ticket remove(String ticketId) {
|
||||
Ticket ticket = this.authorizationTicketStore.remove(ticketId);
|
||||
Ticket ticket=casTicketStore.get(ticketId);
|
||||
casTicketStore.remove(ticketId);
|
||||
return ticket;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user