feat: OAuth update

This commit is contained in:
landaiqing
2024-05-27 21:16:21 +08:00
parent e40ae83c6f
commit 1618807b80
7 changed files with 109 additions and 110 deletions

View File

@@ -40,7 +40,6 @@ public class SchisandraOssMinioController {
@Resource
RedisUtil redisUtil;
private final String MINIO_OSS_CLIENT_CONFIG_KEY = "oss.minio.init";
/**
* @description: minio 初始化
@@ -51,29 +50,25 @@ public class SchisandraOssMinioController {
*/
@PostMapping("init")
public void initMinio(@RequestParam String userId) {
if (log.isInfoEnabled()) {
log.info("SchisandraOssMinioController.init.userId:{}", userId);
}
Preconditions.checkNotNull(userId, "用户id不能为空");
try {
String key = redisUtil.buildKey(MINIO_OSS_CLIENT_CONFIG_KEY, userId);
boolean exists = redisUtil.exist(key);
if (exists) {
log.info("用户: " + userId + "-> minio 已经初始化!");
return;
}
minioOssConfiguration.minioOssClient(userId);
Result result = minioOssConfiguration.minioOssClient(userId);
if (result.getSuccess()) {
log.info("用户: " + userId + "-> minio 初始化完成!");
} catch (Exception e) {
log.error("用户: " + userId + "-> minio 初始化失败", e.getMessage(), e);
} else {
log.error("用户: " + userId + "-> minio 初始化完成");
}
}
@NeedDecrypt
@PostMapping("get")
public SchisandraOssMinioDTO getMinioOss(@RequestParam String userId) {
return SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(schisandraOssMinioDomainService.getMinioConfig(Long.valueOf(userId)));
}
/**
* 新增
*/
@@ -146,6 +141,7 @@ public class SchisandraOssMinioController {
}
return Result.ok(bean.getBaseInfo(fileName));
}
@GetMapping("getAllMinioInfo")
public Result<List<SchisandraOssMinioDTO>> getAllMinioInfo() {
List<SchisandraOssMinioBO> allMinioInfo = schisandraOssMinioDomainService.getAllMinioInfo();

View File

@@ -7,6 +7,7 @@ import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
import com.schisandra.oss.application.oss.core.StandardOssClient;
import com.schisandra.oss.application.oss.core.minio.model.MinioOssClientConfig;
import com.schisandra.oss.application.oss.core.minio.model.MinioOssConfig;
import com.schisandra.oss.common.entity.Result;
import com.schisandra.oss.common.redis.RedisUtil;
import com.schisandra.oss.domain.bo.SchisandraOssMinioBO;
import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService;
@@ -37,36 +38,38 @@ public class MinioOssConfiguration {
@Resource
private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
public StandardOssClient minioOssClient(String userId) {
SchisandraOssMinioDTO minio = minioOssConfiguration.getSchisandraOssMinioDTO(userId);
if (minio == null) return null;
MinioOssConfig minioOssConfig = new MinioOssConfig();
minioOssConfig.setBasePath(minio.getBasePath());
minioOssConfig.setBucketName(minio.getBucketName());
minioOssConfig.setAccessKey(minio.getAccessKey());
minioOssConfig.setSecretKey(minio.getSecretKey());
minioOssConfig.setEndpoint(minio.getEndpoint());
minioOssConfig.init();
if (Boolean.parseBoolean(minio.getOpenAdvancedSetup())) {
MinioOssClientConfig minioOssClientConfig = new MinioOssClientConfig();
minioOssClientConfig.setWriteTimeout(minio.getWriteTimeout());
minioOssClientConfig.setConnectTimeout(minio.getConnectTimeout());
minioOssClientConfig.setReadTimeout(minio.getReadTimeout());
minioOssClientConfig.setFollowSslRedirects(Boolean.parseBoolean(minio.getFollowSslRedirects()));
minioOssClientConfig.setRetryOnConnectionFailure(Boolean.parseBoolean(minio.getRetryOnConnectionFailure()));
minioOssClientConfig.setPingInterval(minio.getPingInterval());
minioOssClientConfig.setFollowRedirects(Boolean.parseBoolean(minio.getFollowRedirects()));
minioOssClientConfig.setCallTimeout(minio.getCallTimeout());
minioOssConfig.setClientConfig(minioOssClientConfig);
public Result minioOssClient(String userId) {
try {
SchisandraOssMinioDTO minio = minioOssConfiguration.getSchisandraOssMinioDTO(userId);
if (minio == null) return null;
MinioOssConfig minioOssConfig = new MinioOssConfig();
minioOssConfig.setBasePath(minio.getBasePath());
minioOssConfig.setBucketName(minio.getBucketName());
minioOssConfig.setAccessKey(minio.getAccessKey());
minioOssConfig.setSecretKey(minio.getSecretKey());
minioOssConfig.setEndpoint(minio.getEndpoint());
minioOssConfig.init();
if (Boolean.parseBoolean(minio.getOpenAdvancedSetup())) {
MinioOssClientConfig minioOssClientConfig = new MinioOssClientConfig();
minioOssClientConfig.setWriteTimeout(minio.getWriteTimeout());
minioOssClientConfig.setConnectTimeout(minio.getConnectTimeout());
minioOssClientConfig.setReadTimeout(minio.getReadTimeout());
minioOssClientConfig.setFollowSslRedirects(Boolean.parseBoolean(minio.getFollowSslRedirects()));
minioOssClientConfig.setRetryOnConnectionFailure(Boolean.parseBoolean(minio.getRetryOnConnectionFailure()));
minioOssClientConfig.setPingInterval(minio.getPingInterval());
minioOssClientConfig.setFollowRedirects(Boolean.parseBoolean(minio.getFollowRedirects()));
minioOssClientConfig.setCallTimeout(minio.getCallTimeout());
minioOssConfig.setClientConfig(minioOssClientConfig);
}
SpringUtil.registerBean(userId, minioOssClient(minioOssConfig));
return Result.ok();
} catch (Exception e) {
log.error("MinioOssConfiguration.minioOssClient:{}", e.getMessage(), e);
return Result.fail();
}
SpringUtil.registerBean(userId,minioOssClient(minioOssConfig));
return minioOssClient(minioOssConfig);
}
@NeedDecrypt
public SchisandraOssMinioDTO getSchisandraOssMinioDTO(String userId) {
CompletableFuture<SchisandraOssMinioDTO> futurePrice = CompletableFuture.supplyAsync(() -> {
@@ -83,7 +86,7 @@ public class MinioOssConfiguration {
}
public StandardOssClient minioOssClient(MinioOssConfig minioOssConfig) {
return new MinioOssClient(minioClient(minioOssConfig),minioOssConfig);
return new MinioOssClient(minioClient(minioOssConfig), minioOssConfig);
}
public MinioClient minioClient(MinioOssConfig minioOssConfig) {