cache package

This commit is contained in:
MaxKey 2022-08-03 21:13:17 +08:00
parent 23730f0530
commit 7819373af7
13 changed files with 22 additions and 25 deletions

View File

@ -23,7 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.maxkey.authn.jwt.AuthTokenService;
import org.maxkey.crypto.Base64Utils;
import org.maxkey.entity.Message;
import org.maxkey.persistence.MomentaryService;
import org.maxkey.persistence.cache.MomentaryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

View File

@ -21,7 +21,7 @@ import java.text.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.maxkey.configuration.AuthJwkConfig;
import org.maxkey.crypto.jwt.HMAC512Service;
import org.maxkey.persistence.MomentaryService;
import org.maxkey.persistence.cache.MomentaryService;
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -32,12 +32,13 @@ import com.github.benmanes.caffeine.cache.Caffeine;
public class InMemorySessionManager implements SessionManager{
private static final Logger _logger = LoggerFactory.getLogger(InMemorySessionManager.class);
protected int validitySeconds = 60 * 30; //default 30 minutes.
static final long CACHE_MAXIMUM_SIZE = 2000000;
protected int validitySeconds = 60 * 30; //default 30 minutes.
protected static Cache<String, Session> sessionStore =
Caffeine.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES)
.maximumSize(2000000)
.maximumSize(CACHE_MAXIMUM_SIZE)
.build();
public InMemorySessionManager(int validitySeconds) {
@ -46,7 +47,7 @@ public class InMemorySessionManager implements SessionManager{
sessionStore =
Caffeine.newBuilder()
.expireAfterWrite(validitySeconds, TimeUnit.SECONDS)
.maximumSize(2000000)
.maximumSize(CACHE_MAXIMUM_SIZE)
.build();
}
@ -90,8 +91,7 @@ public class InMemorySessionManager implements SessionManager{
LocalDateTime currentTime = LocalDateTime.now();
_logger.debug("refresh session Id {} at time {}",sessionId,currentTime);
session.setLastAccessTime(currentTime);
//invalidate sessionId then renew one
sessionStore.invalidate(sessionId);
//sessionId then renew one
create(sessionId , session);
}
return session;
@ -103,14 +103,13 @@ public class InMemorySessionManager implements SessionManager{
@Override
public List<HistoryLogin> querySessions() {
// TODO Auto-generated method stub
// not need implement
return null;
}
@Override
public void terminate(String sessionId, String userId, String username) {
// TODO Auto-generated method stub
// not need implement
}
}

View File

@ -121,14 +121,13 @@ public class RedisSessionManager implements SessionManager {
@Override
public List<HistoryLogin> querySessions() {
// TODO Auto-generated method stub
// not need implement
return null;
}
@Override
public void terminate(String sessionId, String userId, String username) {
// TODO Auto-generated method stub
// not need implement
}

View File

@ -40,7 +40,7 @@ import org.maxkey.constants.ConstsPersistence;
import org.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.maxkey.password.onetimepwd.OtpAuthnService;
import org.maxkey.password.onetimepwd.token.RedisOtpTokenStore;
import org.maxkey.persistence.MomentaryService;
import org.maxkey.persistence.cache.MomentaryService;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.maxkey.persistence.repository.LoginHistoryRepository;
import org.maxkey.persistence.repository.LoginRepository;
@ -189,12 +189,12 @@ public class AuthenticationAutoConfiguration implements InitializingBean {
public LoginRepository loginRepository(JdbcTemplate jdbcTemplate) {
return new LoginRepository(jdbcTemplate);
}
@Bean
public LoginHistoryRepository loginHistoryRepository(JdbcTemplate jdbcTemplate) {
return new LoginHistoryRepository(jdbcTemplate);
}
@Bean
public SessionManager sessionManager(
@Value("${maxkey.server.persistence}") int persistence,

View File

@ -30,9 +30,9 @@ import org.maxkey.crypto.password.MessageDigestPasswordEncoder;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.crypto.password.SM3PasswordEncoder;
import org.maxkey.crypto.password.StandardPasswordEncoder;
import org.maxkey.persistence.InMemoryMomentaryService;
import org.maxkey.persistence.MomentaryService;
import org.maxkey.persistence.RedisMomentaryService;
import org.maxkey.persistence.cache.InMemoryMomentaryService;
import org.maxkey.persistence.cache.MomentaryService;
import org.maxkey.persistence.cache.RedisMomentaryService;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.maxkey.persistence.repository.InstitutionsRepository;
import org.maxkey.persistence.repository.LocalizationRepository;

View File

@ -15,7 +15,7 @@
*/
package org.maxkey.persistence;
package org.maxkey.persistence.cache;
import java.util.concurrent.TimeUnit;

View File

@ -15,7 +15,7 @@
*/
package org.maxkey.persistence;
package org.maxkey.persistence.cache;
public interface MomentaryService {

View File

@ -15,7 +15,7 @@
*/
package org.maxkey.persistence;
package org.maxkey.persistence.cache;
import org.maxkey.persistence.redis.RedisConnection;
import org.maxkey.persistence.redis.RedisConnectionFactory;

View File

@ -0,0 +1 @@
package org.maxkey.persistence.cache;

View File

@ -157,6 +157,4 @@ public class RedisConnectionFactory {
return poolConfig;
}
}

View File

@ -35,7 +35,7 @@ import org.maxkey.entity.UserInfo;
import org.maxkey.entity.apps.Apps;
import org.maxkey.entity.apps.oauth2.provider.ClientDetails;
import org.maxkey.authz.oauth2.provider.approval.ApprovalStore;
import org.maxkey.persistence.MomentaryService;
import org.maxkey.persistence.cache.MomentaryService;
import org.maxkey.persistence.service.AppsService;
import org.maxkey.util.StringUtils;
import org.maxkey.web.WebContext;

View File

@ -35,7 +35,7 @@ import org.maxkey.authz.oauth2.provider.refresh.RefreshTokenGranter;
import org.maxkey.authz.oauth2.provider.request.DefaultOAuth2RequestFactory;
import org.maxkey.authz.oauth2.provider.token.AuthorizationServerTokenServices;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.persistence.MomentaryService;
import org.maxkey.persistence.cache.MomentaryService;
import org.maxkey.persistence.service.AppsService;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;