diff --git a/build.gradle b/build.gradle index a8f3f01fd..e14682a5b 100644 --- a/build.gradle +++ b/build.gradle @@ -251,7 +251,6 @@ subprojects { compile group: 'com.alibaba', name: 'druid', version: '1.1.21' compile group: 'redis.clients', name: 'jedis', version: '3.2.0' compile group: 'org.ehcache', name: 'ehcache', version: '3.8.1' - compile group: 'javax.cache', name: 'cache-api', version: '1.1.0' //mybatis compile group: 'org.mybatis', name: 'mybatis', version: '3.5.4' compile group: 'org.mybatis', name: 'mybatis-spring', version: '2.0.4' diff --git a/maxkey-protocols/maxkey-protocol-cas/src/main/java/org/maxkey/authz/cas/endpoint/ticket/service/InMemoryTicketServices.java b/maxkey-protocols/maxkey-protocol-cas/src/main/java/org/maxkey/authz/cas/endpoint/ticket/service/InMemoryTicketServices.java index a2e3e15c8..7f5933c9e 100644 --- a/maxkey-protocols/maxkey-protocol-cas/src/main/java/org/maxkey/authz/cas/endpoint/ticket/service/InMemoryTicketServices.java +++ b/maxkey-protocols/maxkey-protocol-cas/src/main/java/org/maxkey/authz/cas/endpoint/ticket/service/InMemoryTicketServices.java @@ -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 authorizationTicketStore = new ConcurrentHashMap(); + protected final static UserManagedCache 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; } diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/code/InMemoryAuthorizationCodeServices.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/code/InMemoryAuthorizationCodeServices.java index f94866f5e..9d07471f1 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/code/InMemoryAuthorizationCodeServices.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/code/InMemoryAuthorizationCodeServices.java @@ -1,7 +1,10 @@ package org.maxkey.authz.oauth2.provider.code; -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.oauth2.provider.OAuth2Authentication; /** @@ -11,17 +14,19 @@ import org.maxkey.authz.oauth2.provider.OAuth2Authentication; * @author Dave Syer */ public class InMemoryAuthorizationCodeServices extends RandomValueAuthorizationCodeServices { - - protected final ConcurrentHashMap authorizationCodeStore = new ConcurrentHashMap(); - + protected final static UserManagedCache authorizationCodeStore = + UserManagedCacheBuilder.newUserManagedCacheBuilder(String.class, OAuth2Authentication.class) + .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(60))) + .build(true); @Override protected void store(String code, OAuth2Authentication authentication) { - this.authorizationCodeStore.put(code, authentication); + authorizationCodeStore.put(code, authentication); } @Override public OAuth2Authentication remove(String code) { - OAuth2Authentication auth = this.authorizationCodeStore.remove(code); + OAuth2Authentication auth = authorizationCodeStore.get(code); + authorizationCodeStore.remove(code); return auth; }