大量代码调整和优化

This commit is contained in:
shimingxy
2024-07-22 16:24:58 +08:00
parent 32b0f69c50
commit 363703f21e
288 changed files with 5873 additions and 1156 deletions

View File

@@ -21,7 +21,7 @@ import org.dromara.maxkey.constants.ConstsPersistence;
import org.dromara.maxkey.password.onetimepwd.MailOtpAuthnService;
import org.dromara.maxkey.password.onetimepwd.token.RedisOtpTokenStore;
import org.dromara.maxkey.persistence.redis.RedisConnectionFactory;
import org.dromara.maxkey.persistence.service.EmailSendersService;
import org.dromara.maxkey.persistence.service.CnfEmailSendersService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@@ -38,7 +38,7 @@ public class OneTimePasswordAutoConfiguration {
@Bean(name = "mailOtpAuthnService")
public MailOtpAuthnService mailOtpAuthnService(
@Value("${maxkey.server.persistence}") int persistence,
EmailSendersService emailSendersService,
CnfEmailSendersService emailSendersService,
RedisConnectionFactory redisConnFactory) {
MailOtpAuthnService otpAuthnService =
new MailOtpAuthnService(emailSendersService);

View File

@@ -17,7 +17,7 @@
package org.dromara.maxkey.password.onetimepwd;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.token.AbstractOtpTokenStore;
import org.dromara.maxkey.password.onetimepwd.token.InMemoryOtpTokenStore;
import org.dromara.maxkey.util.StringGenerator;

View File

@@ -23,10 +23,10 @@ import java.util.concurrent.TimeUnit;
import org.dromara.maxkey.configuration.EmailConfig;
import org.dromara.maxkey.constants.ConstsBoolean;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.EmailSenders;
import org.dromara.maxkey.entity.cnf.CnfEmailSenders;
import org.dromara.maxkey.password.onetimepwd.impl.MailOtpAuthn;
import org.dromara.maxkey.password.onetimepwd.token.RedisOtpTokenStore;
import org.dromara.maxkey.persistence.service.EmailSendersService;
import org.dromara.maxkey.persistence.service.CnfEmailSendersService;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
@@ -38,11 +38,11 @@ public class MailOtpAuthnService {
.expireAfterWrite(60, TimeUnit.MINUTES)
.build();
EmailSendersService emailSendersService;
CnfEmailSendersService emailSendersService;
RedisOtpTokenStore redisOptTokenStore;
public MailOtpAuthnService(EmailSendersService emailSendersService) {
public MailOtpAuthnService(CnfEmailSendersService emailSendersService) {
this.emailSendersService = emailSendersService;
}
@@ -54,7 +54,7 @@ public class MailOtpAuthnService {
public AbstractOtpAuthn getMailOtpAuthn(String instId) {
AbstractOtpAuthn otpAuthn = otpAuthnStore.getIfPresent(instId);
if(otpAuthn == null) {
EmailSenders emailSender =
CnfEmailSenders emailSender =
emailSendersService.findOne("where instid = ? ", new Object[]{instId}, new int[]{Types.VARCHAR});
String credentials = PasswordReciprocal.getInstance().decoder(emailSender.getCredentials());

View File

@@ -17,7 +17,7 @@
package org.dromara.maxkey.password.onetimepwd.impl;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
/**

View File

@@ -19,7 +19,7 @@ package org.dromara.maxkey.password.onetimepwd.impl;
import org.apache.commons.codec.binary.Hex;
import org.dromara.maxkey.crypto.Base32Utils;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.dromara.maxkey.password.onetimepwd.algorithm.TimeBasedOTP;
import org.slf4j.Logger;

View File

@@ -21,7 +21,7 @@ import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import org.dromara.maxkey.crypto.Base32Utils;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.dromara.maxkey.password.onetimepwd.algorithm.HOTP;
import org.slf4j.Logger;

View File

@@ -21,7 +21,7 @@ import java.text.MessageFormat;
import java.util.Properties;
import org.dromara.maxkey.configuration.EmailConfig;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -17,7 +17,7 @@
package org.dromara.maxkey.password.onetimepwd.impl;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
public class MobileOtpAuthn extends AbstractOtpAuthn {

View File

@@ -17,7 +17,7 @@
package org.dromara.maxkey.password.onetimepwd.impl;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
/**

View File

@@ -24,7 +24,7 @@ import java.util.TimeZone;
import org.apache.commons.codec.binary.Hex;
import org.dromara.maxkey.crypto.Base32Utils;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.dromara.maxkey.password.onetimepwd.algorithm.TimeBasedOTP;
import org.slf4j.Logger;

View File

@@ -17,7 +17,7 @@
package org.dromara.maxkey.password.onetimepwd.token;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
public abstract class AbstractOtpTokenStore {

View File

@@ -19,7 +19,7 @@ package org.dromara.maxkey.password.onetimepwd.token;
import java.util.concurrent.TimeUnit;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.OneTimePassword;
import org.joda.time.DateTime;
import org.joda.time.Duration;
@@ -61,8 +61,8 @@ public class InMemoryOtpTokenStore extends AbstractOtpTokenStore {
DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
Duration duration = new Duration(oneCreateTime, currentdateTime);
int intDuration = Integer.parseInt(duration.getStandardSeconds() + "");
logger.debug("validate duration " + intDuration);
logger.debug("validate result " + (intDuration <= interval));
logger.debug("validate duration {}" , intDuration);
logger.debug("validate result {}" , (intDuration <= interval));
if (intDuration <= interval) {
return true;
}

View File

@@ -18,7 +18,7 @@
package org.dromara.maxkey.password.onetimepwd.token;
import org.dromara.maxkey.constants.ConstsTimeInterval;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.OneTimePassword;
import org.dromara.maxkey.persistence.redis.RedisConnection;
import org.dromara.maxkey.persistence.redis.RedisConnectionFactory;
@@ -35,7 +35,7 @@ public class RedisOtpTokenStore extends AbstractOtpTokenStore {
this.connectionFactory = connectionFactory;
}
public static String PREFIX = "REDIS_OTP_SERVICE_";
public static final String PREFIX = "REDIS_OTP_SERVICE_";
@Override
public void store(UserInfo userInfo, String token, String receiver, String type) {
@@ -59,10 +59,7 @@ public class RedisOtpTokenStore extends AbstractOtpTokenStore {
PREFIX + userInfo.getUsername() + "_" + type + "_" + token);
// conn.delete(PREFIX + userInfo.getUsername() + "_" + type + "_" + token);
conn.close();
if (otp != null) {
return true;
}
return false;
return (otp != null) ;
}
}

View File

@@ -21,8 +21,8 @@ import org.dromara.maxkey.constants.ConstsPersistence;
import org.dromara.maxkey.password.onetimepwd.token.RedisOtpTokenStore;
import org.dromara.maxkey.password.sms.SmsOtpAuthnService;
import org.dromara.maxkey.persistence.redis.RedisConnectionFactory;
import org.dromara.maxkey.persistence.service.EmailSendersService;
import org.dromara.maxkey.persistence.service.SmsProviderService;
import org.dromara.maxkey.persistence.service.CnfEmailSendersService;
import org.dromara.maxkey.persistence.service.CnfSmsProviderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@@ -38,8 +38,8 @@ public class SmsAutoConfiguration {
@Bean(name = "smsOtpAuthnService")
public SmsOtpAuthnService smsOtpAuthnService(
@Value("${maxkey.server.persistence}") int persistence,
SmsProviderService smsProviderService,
EmailSendersService emailSendersService,
CnfSmsProviderService smsProviderService,
CnfEmailSendersService emailSendersService,
RedisConnectionFactory redisConnFactory) {
SmsOtpAuthnService smsOtpAuthnService =
new SmsOtpAuthnService(smsProviderService,emailSendersService);

View File

@@ -19,7 +19,7 @@ package org.dromara.maxkey.password.sms;
import java.io.IOException;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -23,16 +23,16 @@ import java.util.concurrent.TimeUnit;
import org.dromara.maxkey.configuration.EmailConfig;
import org.dromara.maxkey.constants.ConstsBoolean;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.EmailSenders;
import org.dromara.maxkey.entity.SmsProvider;
import org.dromara.maxkey.entity.cnf.CnfEmailSenders;
import org.dromara.maxkey.entity.cnf.CnfSmsProvider;
import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.dromara.maxkey.password.onetimepwd.impl.MailOtpAuthn;
import org.dromara.maxkey.password.onetimepwd.token.RedisOtpTokenStore;
import org.dromara.maxkey.password.sms.impl.SmsOtpAuthnAliyun;
import org.dromara.maxkey.password.sms.impl.SmsOtpAuthnTencentCloud;
import org.dromara.maxkey.password.sms.impl.SmsOtpAuthnYunxin;
import org.dromara.maxkey.persistence.service.EmailSendersService;
import org.dromara.maxkey.persistence.service.SmsProviderService;
import org.dromara.maxkey.persistence.service.CnfEmailSendersService;
import org.dromara.maxkey.persistence.service.CnfSmsProviderService;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
@@ -44,18 +44,18 @@ public class SmsOtpAuthnService {
.expireAfterWrite(60, TimeUnit.MINUTES)
.build();
SmsProviderService smsProviderService;
CnfSmsProviderService smsProviderService;
EmailSendersService emailSendersService;
CnfEmailSendersService emailSendersService;
RedisOtpTokenStore redisOptTokenStore;
public SmsOtpAuthnService(SmsProviderService smsProviderService, EmailSendersService emailSendersService) {
public SmsOtpAuthnService(CnfSmsProviderService smsProviderService, CnfEmailSendersService emailSendersService) {
this.smsProviderService = smsProviderService;
this.emailSendersService = emailSendersService;
}
public SmsOtpAuthnService(SmsProviderService smsProviderService,EmailSendersService emailSendersService,RedisOtpTokenStore redisOptTokenStore) {
public SmsOtpAuthnService(CnfSmsProviderService smsProviderService,CnfEmailSendersService emailSendersService,RedisOtpTokenStore redisOptTokenStore) {
this.smsProviderService = smsProviderService;
this.emailSendersService = emailSendersService;
this.redisOptTokenStore = redisOptTokenStore;
@@ -64,7 +64,7 @@ public class SmsOtpAuthnService {
public AbstractOtpAuthn getByInstId(String instId) {
AbstractOtpAuthn otpAuthn = smsAuthnStore.getIfPresent(instId);
if(otpAuthn == null) {
SmsProvider smsProvider =
CnfSmsProvider smsProvider =
smsProviderService.findOne("where instid = ? ", new Object[]{instId}, new int[]{Types.VARCHAR});
if(smsProvider != null ) {
@@ -102,7 +102,7 @@ public class SmsOtpAuthnService {
}
otpAuthn = yunxin;
}else if(smsProvider.getProvider().equalsIgnoreCase("email")) {
EmailSenders emailSender =
CnfEmailSenders emailSender =
emailSendersService.findOne("where instid = ? ", new Object[]{instId}, new int[]{Types.VARCHAR});
String credentials = PasswordReciprocal.getInstance().decoder(emailSender.getCredentials());

View File

@@ -24,7 +24,7 @@ import com.aliyuncs.IAcsClient;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.sms.SmsOtpAuthn;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -24,7 +24,7 @@ import com.tencentcloudapi.sms.v20190711.SmsClient;
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.sms.SmsOtpAuthn;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -29,7 +29,7 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.password.sms.SmsOtpAuthn;
import org.dromara.maxkey.util.JsonUtils;
import org.dromara.maxkey.util.StringGenerator;

View File

@@ -35,7 +35,6 @@ import org.dromara.maxkey.persistence.cache.MomentaryService;
import org.dromara.maxkey.persistence.cache.RedisMomentaryService;
import org.dromara.maxkey.persistence.redis.RedisConnectionFactory;
import org.dromara.maxkey.persistence.repository.InstitutionsRepository;
import org.dromara.maxkey.persistence.repository.LocalizationRepository;
import org.dromara.maxkey.util.IdGenerator;
import org.dromara.maxkey.util.SnowFlakeId;
import org.dromara.maxkey.web.WebContext;
@@ -73,12 +72,6 @@ public class ApplicationAutoConfiguration {
return new InstitutionsRepository(jdbcTemplate);
}
@Bean
public LocalizationRepository localizationRepository(JdbcTemplate jdbcTemplate,
InstitutionsRepository institutionsRepository) {
return new LocalizationRepository(jdbcTemplate,institutionsRepository);
}
/**
* Authentication Password Encoder .
* @return