diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-api/pom.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-api/pom.xml
index 5da4b4b..66f78f6 100644
--- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-api/pom.xml
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-api/pom.xml
@@ -31,7 +31,7 @@
org.projectlombok
lombok
- 1.18.28
+ 1.18.24
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/pom.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/pom.xml
index 7706118..c300f41 100644
--- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/pom.xml
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/pom.xml
@@ -14,6 +14,7 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.13.0
1.8
1.8
@@ -22,7 +23,7 @@
org.projectlombok
lombok
- 1.18.20
+ 1.18.24
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsInitConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsInitConfig.java
new file mode 100644
index 0000000..3d157dc
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsInitConfig.java
@@ -0,0 +1,32 @@
+package com.schisandra.auth.application.config;
+
+import com.schisandra.auth.application.convert.SchisandraSmsConfigDTOConvert;
+import com.schisandra.auth.application.dto.SchisandraSmsConfigDTO;
+import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO;
+import com.schisandra.auth.domain.service.SchisandraSmsConfigDomainService;
+import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig;
+import org.dromara.sms4j.core.factory.SmsFactory;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.context.event.EventListener;
+
+import javax.annotation.Resource;
+import java.util.List;
+@Configuration
+public class SmsInitConfig {
+ @Resource
+ SmsReadConfig smsReadConfig;
+ @Resource
+ SchisandraSmsConfigDomainService schisandraSmsConfigDomainService;
+ @EventListener
+ public void init(ContextRefreshedEvent event){
+ List SchisandraSmsConfigBOs= schisandraSmsConfigDomainService.queryAll();
+ List schisandraSmsConfigDTOS = SchisandraSmsConfigDTOConvert.INSTANCE.convertBOToDTOList(SchisandraSmsConfigBOs);
+ for (SchisandraSmsConfigDTO schisandraSmsConfig : schisandraSmsConfigDTOS){
+ System.out.println(schisandraSmsConfig.toString());
+ if (schisandraSmsConfig!=null){
+ // 创建SmsBlend 短信实例
+ SmsFactory.createSmsBlend(smsReadConfig);
+ };
+ }}
+}
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsReadConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsReadConfig.java
new file mode 100644
index 0000000..ac40ceb
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsReadConfig.java
@@ -0,0 +1,89 @@
+package com.schisandra.auth.application.config;
+
+import com.schisandra.auth.application.convert.SchisandraSmsConfigDTOConvert;
+import com.schisandra.auth.application.dto.SchisandraSmsConfigDTO;
+import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO;
+import com.schisandra.auth.domain.service.SchisandraSmsConfigDomainService;
+import com.schisandra.auth.infra.basic.dao.SchisandraSmsConfigDao;
+import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig;
+import org.dromara.sms4j.aliyun.config.AlibabaConfig;
+import org.dromara.sms4j.huawei.config.HuaweiConfig;
+import org.dromara.sms4j.provider.config.BaseConfig;
+import org.dromara.sms4j.tencent.config.TencentConfig;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Classname SmsConfig
+ * @BelongsProject: schisandra-cloud-storage
+ * @BelongsPackage: com.schisandra.auth.common.config
+ * @Author: landaiqing
+ * @CreateTime: 2024-05-08 18:46
+ * @Description: TODO
+ * @Version: 1.0
+ */
+@Component
+public class SmsReadConfig implements org.dromara.sms4j.core.datainterface.SmsReadConfig {
+ @Resource
+ SchisandraSmsConfigDomainService schisandraSmsConfigDomainService;
+
+ @Override
+ public BaseConfig getSupplierConfig(String configId) {
+ return null;
+
+ }
+
+ @Override
+ public List getSupplierConfigList() {
+ List configs = new ArrayList<>();
+ List SchisandraSmsConfigBOs= schisandraSmsConfigDomainService.queryAll();
+ List schisandraSmsConfigDTOS = SchisandraSmsConfigDTOConvert.INSTANCE.convertBOToDTOList(SchisandraSmsConfigBOs);
+ for (SchisandraSmsConfigDTO schisandraSmsConfig : schisandraSmsConfigDTOS){
+ if ("alibaba".equals(schisandraSmsConfig.getConfigId())) {
+ AlibabaConfig alibabaConfig = new AlibabaConfig();
+ alibabaConfig.setConfigId(schisandraSmsConfig.getConfigId());
+ alibabaConfig.setRequestUrl(schisandraSmsConfig.getRequestUrl());
+ alibabaConfig.setAccessKeyId(schisandraSmsConfig.getAccessKeyId());
+ alibabaConfig.setAccessKeySecret(schisandraSmsConfig.getAccessKeySecret());
+ alibabaConfig.setSignature(schisandraSmsConfig.getSignature());
+ alibabaConfig.setTemplateId(schisandraSmsConfig.getTemplateId());
+ alibabaConfig.setTemplateName(schisandraSmsConfig.getTemplateName());
+ alibabaConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId());
+ configs.add(alibabaConfig);
+ }
+ if ("tencent".equals(schisandraSmsConfig.getConfigId())) {
+ TencentConfig tencentConfig=new TencentConfig();
+ tencentConfig.setConfigId(schisandraSmsConfig.getConfigId());
+ tencentConfig.setAccessKeyId(schisandraSmsConfig.getAccessKeyId());
+ tencentConfig.setAccessKeySecret(schisandraSmsConfig.getAccessKeySecret());
+ tencentConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId());
+ tencentConfig.setService(schisandraSmsConfig.getSdkAppId());
+ tencentConfig.setRequestUrl(schisandraSmsConfig.getRequestUrl());
+ tencentConfig.setTerritory(schisandraSmsConfig.getRegion());
+ tencentConfig.setAction(schisandraSmsConfig.getAction());
+ tencentConfig.setSignature(schisandraSmsConfig.getSignature());
+ tencentConfig.setTemplateId(schisandraSmsConfig.getTemplateId());
+ tencentConfig.setVersion(schisandraSmsConfig.getVersion());
+ tencentConfig.setConnTimeout(schisandraSmsConfig.getConnTimeout());
+ tencentConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId());
+ configs.add(tencentConfig);
+ }
+ if ("huawei".equals(schisandraSmsConfig.getConfigId())) {
+ HuaweiConfig huaweiConfig = new HuaweiConfig();
+ huaweiConfig.setConfigId(schisandraSmsConfig.getConfigId());
+ huaweiConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId());
+ huaweiConfig.setAccessKeySecret(schisandraSmsConfig.getAccessKeySecret());
+ huaweiConfig.setAccessKeyId(schisandraSmsConfig.getAccessKeyId());
+ huaweiConfig.setUrl(schisandraSmsConfig.getUrl());
+ huaweiConfig.setSignature(schisandraSmsConfig.getSignature());
+ huaweiConfig.setTemplateId(schisandraSmsConfig.getTemplateId());
+ configs.add(huaweiConfig);
+ }}
+ return configs;
+
+ }
+
+}
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java
new file mode 100644
index 0000000..11a3ca6
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java
@@ -0,0 +1,107 @@
+package com.schisandra.auth.application.controller;
+
+import cn.hutool.core.lang.Assert;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.util.Base64;
+
+
+@RestController
+@RequestMapping("/ReactRotateCaptcha/")
+@Slf4j
+public class ReactRotateCaptchaController {
+ @PostMapping (value = "get", produces = MediaType.IMAGE_PNG_VALUE)
+ public ResponseEntity get(){
+ //前端可以直接根据URL:/image/{图片id} 来获取图片 注意:资源文件ID最好进行加密和设置有效期
+ // 在实际开发中 一般先通过图片id查看数据库有没有这条记录
+
+ String imageFilePath = "D:\\java_project\\schisandra-cloud-storage\\schisandra-cloud-storage-auth\\schisandra-cloud-storage-auth-application\\schisandra-cloud-storage-auth-application-controller\\src\\main\\java\\com\\schisandra\\auth\\application\\image\\test1.png";
+ File file = new File(imageFilePath);
+ try {
+ BufferedImage bufferedImage = ImageIO.read(file);
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ImageIO.write(bufferedImage, "png", byteArrayOutputStream);
+ byte[] imageBytes = byteArrayOutputStream.toByteArray(); // 读取图片数据的字节数组
+ // 将图片字节数组转换为Base64编码的字符串
+ String base64Image = Base64.getEncoder().encodeToString(imageBytes);
+ System.out.println(base64Image);
+ // 创建包含Base64编码的响应体的ResponseEntity对象,并设置正确的媒体类型和内容长度
+ return ResponseEntity.ok().contentType(MediaType.IMAGE_PNG)
+ .body(base64Image);
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ return ResponseEntity.ok().body(null);
+ }
+
+ /**
+ * 请求图片地址, 返回的结果进行base64编码
+ * @param imgUrl 图片地址
+ * @return
+ */
+// public static String requestUrlToBase64(String imgUrl) {
+// //读取图片字节数组
+// byte[] data = null;
+// try {
+// InputStream in = new FileInputStream(imgUrl);
+//// System.out.println("文件大小(字节)=" + in.available());
+// data = new byte[in.available()];
+// in.read(data);
+// in.close();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// //对字节数组进行Base64编码,得到Base64编码的字符串
+// return new String(Base64.encodeBase64(data));
+//
+// }
+//
+// public static File convertBase64ToFile(String fileBase64String, String filePath, String fileName) {
+// BufferedOutputStream bos = null;
+// FileOutputStream fos = null;
+// File file = null;
+// try {
+// File dir = new File(filePath);
+// //判断文件目录是否存在
+// if (!dir.exists() && dir.isDirectory()) {
+// dir.mkdirs();
+// }
+// byte[] bfile = Base64.decodeBase64(fileBase64String);
+// file = new File(filePath + File.separator + fileName);
+// fos = new FileOutputStream(file);
+// bos = new BufferedOutputStream(fos);
+// bos.write(bfile);
+// return file;
+// } catch (Exception e) {
+// e.printStackTrace();
+// } finally {
+// if (bos != null) {
+// try {
+// bos.close();
+// } catch (IOException e1) {
+// e1.printStackTrace();
+// }
+// }
+// if (fos != null) {
+// try {
+// fos.close();
+// } catch (IOException e1) {
+// e1.printStackTrace();
+// }
+// }
+// }
+// return null;
+// }
+
+}
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthPermissionController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthPermissionController.java
index 7c1859c..7bc7aed 100644
--- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthPermissionController.java
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthPermissionController.java
@@ -64,7 +64,7 @@ public class SchisandraAuthPermissionController {
}
}
/**
- * @description:查询权限信息
+ * @description: 查询权限信息
* @param: [schisandraAuthPermissionDTO]
* @return: com.schisandra.auth.common.entity.Result
* @author zlg
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java
index d926d01..d70309f 100644
--- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java
@@ -1,16 +1,13 @@
package com.schisandra.auth.application.controller;
import com.alibaba.fastjson.JSON;
-import com.google.common.base.Preconditions;
import com.schisandra.auth.application.convert.SchisandraAuthUserDTOConverter;
import com.schisandra.auth.application.dto.SchisandraAuthUserDTO;
import com.schisandra.auth.common.entity.Result;
import com.schisandra.auth.domain.bo.SchisandraAuthUserBO;
import com.schisandra.auth.domain.service.SchisandraAuthUserDomainService;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
-
import javax.annotation.Resource;
/**
@@ -28,7 +25,6 @@ import javax.annotation.Resource;
public class SchisandraAuthUserController {
@Resource
private SchisandraAuthUserDomainService schisandraAuthUserDomainService;
-
/**
* @description 更新用户信息
* @param schisandraAuthUserDTO
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraSmsController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraSmsController.java
new file mode 100644
index 0000000..db7f73a
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraSmsController.java
@@ -0,0 +1,51 @@
+package com.schisandra.auth.application.controller;
+
+
+import com.schisandra.auth.common.entity.Result;
+import com.schisandra.auth.common.redis.RedisUtil;
+import com.schisandra.auth.common.utils.SmsCodeUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.sms4j.api.entity.SmsResponse;
+import org.dromara.sms4j.core.factory.SmsFactory;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+import static java.util.concurrent.TimeUnit.SECONDS;
+
+@RestController
+@RequestMapping("/sms/")
+@Slf4j
+public class SchisandraSmsController {
+ @Resource
+ private RedisUtil redisUtil;
+
+ private final String authPhonePrefix="auth.phone";
+/**
+ * @description: 发送短信验证码
+ * @param: [phone]
+ * @return: com.schisandra.auth.common.entity.Result
+ * @author zlg
+ * @date: 2024/5/8 22:53
+ */
+ @GetMapping("/sendByTemplate")
+ public Result sendByTemplate(String phone) {
+ String prefix = redisUtil.buildKey(authPhonePrefix, phone);
+ String code = SmsCodeUtils.generateValidateCode(4).toString();
+ if (!redisUtil.exist(prefix)){
+ SmsResponse smsResponse=SmsFactory.getBySupplier("alibaba").sendMessage(phone,code);
+ if (smsResponse.isSuccess()){
+ redisUtil.setNx(prefix, code, 60L,SECONDS);
+ return Result.ok();
+ }else {
+ return Result.fail();
+ }
+ }else {
+ return Result.fail("发送频繁,请稍后重试");
+ }
+
+ }
+
+}
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/convert/SchisandraSmsConfigDTOConvert.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/convert/SchisandraSmsConfigDTOConvert.java
new file mode 100644
index 0000000..3484116
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/convert/SchisandraSmsConfigDTOConvert.java
@@ -0,0 +1,43 @@
+package com.schisandra.auth.application.convert;
+
+import com.schisandra.auth.application.dto.SchisandraSmsConfigDTO;
+import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO;
+import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * (SchisandraSmsConfig)实体类
+ *
+ * @author makejava
+ * @since 2024-05-08 20:09:54
+ */
+@Mapper(componentModel = "spring")
+public interface SchisandraSmsConfigDTOConvert {
+
+ SchisandraSmsConfigDTOConvert INSTANCE = Mappers.getMapper(SchisandraSmsConfigDTOConvert.class);
+
+ /**
+ * @description 将bo转换为实体
+ * @param schisandraSmsConfigDTO
+ * @return com.schisandra.auth.infra.basic.entity.SchisandraAuthUser
+ * @author landaiqing
+ * @date 2024/3/21 23:13
+ */
+ SchisandraSmsConfigBO convertDTOToBO(SchisandraSmsConfigDTO schisandraSmsConfigDTO);
+
+ /**
+ * @description 将实体转换为bo
+ * @param schisandraSmsConfigBO
+ * @return com.schisandra.auth.domain.bo.SchisandraAuthUserBO
+ * @author landaiqing
+ * @date 2024/3/21 23:13
+ */
+ SchisandraSmsConfigDTO convertBOToDTO(SchisandraSmsConfigBO schisandraSmsConfigBO);
+
+ List convertBOToDTOList(List schisandraSmsConfigBO);
+
+}
+
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/dto/SchisandraSmsConfigDTO.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/dto/SchisandraSmsConfigDTO.java
new file mode 100644
index 0000000..33127cc
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/dto/SchisandraSmsConfigDTO.java
@@ -0,0 +1,155 @@
+package com.schisandra.auth.application.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (SchisandraSmsConfig)实体类
+ *
+ * @author makejava
+ * @since 2024-05-08 20:09:54
+ */
+@Data
+public class SchisandraSmsConfigDTO implements Serializable {
+
+ /**
+ * id
+ */
+ private Integer id;
+ /**
+ * 配置id
+ */
+ private String configId;
+ /**
+ * 请求地址
+ */
+ private String requestUrl;
+ /**
+ * 模板变量名称
+ */
+ private String templateName;
+ /**
+ * 接口名称
+ */
+ private String action;
+ /**
+ * 地域信息
+ */
+ private String region;
+
+ private String accessKeyId;
+
+ private String accessKeySecret;
+ /**
+ * 厂商名称标识
+ */
+ private String supplier;
+ /**
+ * 短信签名
+ */
+ private String signature;
+
+ private String sdkAppId;
+ /**
+ * 模板ID
+ */
+ private String templateId;
+ /**
+ * 权重
+ */
+ private Integer weight;
+ /**
+ * 短信重试次数,默认0次不重试
+ */
+ private Integer retryInterval;
+ /**
+ * 短信重试次数,默认0次不重试
+ */
+ private Integer maxRetries;
+ /**
+ * 厂商的发送数量上限,默认不设置上限
+ */
+ private Long maximum;
+ /**
+ * REST API Base URL
+ */
+ private String baseUrl;
+ /**
+ * 请求域名
+ */
+ private String serverIp;
+ /**
+ * 请求端口
+ */
+ private Integer serverPort;
+ /**
+ * 国内短信签名通道号
+ */
+ private String sender;
+ /**
+ * 短信状态报告接收地
+ */
+ private String statusCallBack;
+ /**
+ * APP接入地址
+ */
+ private String url;
+ /**
+ * 模板短信请求地址
+ */
+ private String templateUrl;
+ /**
+ * 验证码短信请求地址
+ */
+ private String codeUrl;
+ /**
+ * 验证码验证请求地址
+ */
+ private String verifyUrl;
+ /**
+ * 是否需要支持短信上行。true:需要,false:不需要false
+ */
+ private String needUp;
+ /**
+ * 请求超时时间
+ */
+ private Integer connTimeout;
+ /**
+ * 是否为简易模式
+ */
+ private String isSimple;
+ /**
+ * 短信发送后将向这个地址推送(运营商返回的)发送报告
+ */
+ private String callbackUrl;
+ /**
+ * 企业ID
+ */
+ private Integer mchId;
+
+ private String appKey;
+
+ private Integer appId;
+ /**
+ * 版本号
+ */
+ private String version;
+ /**
+ * 单发链接
+ */
+ private String singleMsgUrl;
+ /**
+ * 群发链接
+ */
+ private String massMsgUrl;
+ /**
+ * 签名ID
+ */
+ private String signatureId;
+
+
+
+}
+
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/pom.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/pom.xml
index 4bfd23b..500e848 100644
--- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/pom.xml
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/pom.xml
@@ -36,7 +36,7 @@
org.projectlombok
lombok
- 1.18.20
+ 1.18.24
org.mapstruct
@@ -128,5 +128,18 @@
guava
29.0-jre
+
+
+ org.apache.directory.studio
+ org.apache.commons.codec
+ 1.8
+
+
+
+ cn.hutool
+ hutool-extra
+ 5.8.27
+
+
diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/redis/RedisConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/redis/RedisConfig.java
new file mode 100644
index 0000000..8f2b55e
--- /dev/null
+++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/redis/RedisConfig.java
@@ -0,0 +1,46 @@
+package com.schisandra.auth.common.redis;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+/**
+ * Redis的config处理
+ *
+ * @author: landaiqing
+ */
+@Configuration
+public class RedisConfig {
+
+ @Bean
+ public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
+ RedisTemplate redisTemplate = new RedisTemplate<>();
+ RedisSerializer redisSerializer = new StringRedisSerializer();
+ redisTemplate.setConnectionFactory(redisConnectionFactory);
+ redisTemplate.setKeySerializer(redisSerializer);
+ redisTemplate.setHashKeySerializer(redisSerializer);
+ redisTemplate.setValueSerializer(jackson2JsonRedisSerializer());
+ redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer());
+ return redisTemplate;
+ }
+
+ private Jackson2JsonRedisSerializer