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 jackson2JsonRedisSerializer() { + Jackson2JsonRedisSerializer jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); + jsonRedisSerializer.setObjectMapper(objectMapper); + return jsonRedisSerializer; + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/redis/RedisUtil.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/redis/RedisUtil.java new file mode 100644 index 0000000..ebdb9f7 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/redis/RedisUtil.java @@ -0,0 +1,107 @@ +package com.schisandra.auth.common.redis; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * RedisUtil工具类 + * + * @author: landaiqing + * @date: 2024/2/19 + */ +@Component +@Slf4j +public class RedisUtil { + + @Resource + private RedisTemplate redisTemplate; + + private static final String CACHE_KEY_SEPARATOR = "."; + + /** + * 构建缓存key + */ + public String buildKey(String... strObjs) { + return Stream.of(strObjs).collect(Collectors.joining(CACHE_KEY_SEPARATOR)); + } + + /** + * 是否存在key + */ + public boolean exist(String key) { + return redisTemplate.hasKey(key); + } + + /** + * 删除key + */ + public boolean del(String key) { + return redisTemplate.delete(key); + } + + /** + * set(不带过期) + */ + public void set(String key, String value) { + redisTemplate.opsForValue().set(key, value); + } + + /** + * set(带过期) + */ + public boolean setNx(String key, String value, Long time, TimeUnit timeUnit) { + return redisTemplate.opsForValue().setIfAbsent(key, value, time, timeUnit); + } + + /** + * 获取string类型缓存 + */ + public String get(String key) { + return (String) redisTemplate.opsForValue().get(key); + } + + public Boolean zAdd(String key, String value, Long score) { + return redisTemplate.opsForZSet().add(key, value, Double.valueOf(String.valueOf(score))); + } + + public Long countZset(String key) { + return redisTemplate.opsForZSet().size(key); + } + + public Set rangeZset(String key, long start, long end) { + return redisTemplate.opsForZSet().range(key, start, end); + } + + public Long removeZset(String key, Object value) { + return redisTemplate.opsForZSet().remove(key, value); + } + + public void removeZsetList(String key, Set value) { + value.stream().forEach((val) -> redisTemplate.opsForZSet().remove(key, val)); + } + + public Double score(String key, Object value) { + return redisTemplate.opsForZSet().score(key, value); + } + + public Set rangeByScore(String key, long start, long end) { + return redisTemplate.opsForZSet().rangeByScore(key, Double.valueOf(String.valueOf(start)), Double.valueOf(String.valueOf(end))); + } + + public Object addScore(String key, Object obj, double score) { + return redisTemplate.opsForZSet().incrementScore(key, obj, score); + } + + public Object rank(String key, Object obj) { + return redisTemplate.opsForZSet().rank(key, obj); + } + + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/AESUtils.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/AESUtils.java new file mode 100644 index 0000000..e5bd78c --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/AESUtils.java @@ -0,0 +1,110 @@ +package com.schisandra.auth.common.utils; + +import org.apache.commons.codec.binary.Base64; + +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.security.SecureRandom; +import java.util.Random; + +/** + * @ClassName AESUtils 一定要选择16位密钥长度,也就是KEY_LENGTH=16*8,36的话就需要修改环境的jar包。 + * @Description TODO + * @Author L + * @Date 2024/1/26 17:27 + */ +public class AESUtils { + /** + * 加密算法AES + */ + private static final String KEY_ALGORITHM = "AES"; + + /** + * key的长度,Wrong key size: must be equal to 128, 192 or 256 + * 传入时需要16、24、36 + */ + private static final int KEY_LENGTH = 16 * 8; + + /** + * 算法名称/加密模式/数据填充方式 + * 默认:AES/ECB/PKCS5Padding + */ + private static final String ALGORITHMS = "AES/ECB/PKCS5Padding"; + + /** + * 后端AES的key,由静态代码块赋值 + */ + public static String key; + + + static { + key = getKey(); + } + + /** + * 获取key + */ + public static String getKey() { + int length = KEY_LENGTH / 8; + StringBuilder uid = new StringBuilder(length); + //产生32位的强随机数 + Random rd = new SecureRandom(); + for (int i = 0; i < length; i++) { + //产生0-2的3位随机数 + switch (rd.nextInt(3)) { + case 0: + //0-9的随机数 + uid.append(rd.nextInt(10)); + break; + case 1: + //ASCII在65-90之间为大写,获取大写随机 + uid.append((char) (rd.nextInt(26) + 65)); + break; + case 2: + //ASCII在97-122之间为小写,获取小写随机 + uid.append((char) (rd.nextInt(26) + 97)); + break; + default: + break; + } + } + return uid.toString(); + } + + /** + * AES 加密 + * + * @param content 加密的字符串 + * @param encryptKey key值 + */ + public static String encrypt(String content, String encryptKey) throws Exception { + //设置Cipher对象 + Cipher cipher = Cipher.getInstance(ALGORITHMS); + cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), KEY_ALGORITHM)); + + //调用doFinal + // 转base64 + return Base64.encodeBase64String(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8))); + + } + + /** + * AES 解密 + * + * @param encryptStr 解密的字符串 + * @param decryptKey 解密的key值 + */ + public static String decrypt(String encryptStr, String decryptKey) throws Exception { + //base64格式的key字符串转byte + byte[] decodeBase64 = Base64.decodeBase64(encryptStr); + + + //设置Cipher对象 + Cipher cipher = Cipher.getInstance(ALGORITHMS); + cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), KEY_ALGORITHM)); + //调用doFinal解密 + return new String(cipher.doFinal(decodeBase64)); + + } +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/MD5Util.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/MD5Util.java new file mode 100644 index 0000000..9a21050 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/MD5Util.java @@ -0,0 +1,61 @@ +package com.schisandra.auth.common.utils; + +import java.security.MessageDigest; + +public class MD5Util { + //十六进制下数字到字符的映射数组 + private final static String[] hexDigits = {"0", "1", "2", "3", "4", + "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; + + + /** + * 把inputString加密 + */ + public static String md5(String inputString) { + return encodeByMD5(inputString); + } + /** + * 对字符串进行MD5加密 + */ + private static String encodeByMD5(String originString) { + if (originString != null) { + try { + //创建具有指定算法名称的信息摘要 + MessageDigest md = MessageDigest.getInstance("MD5"); + //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算 + byte[] results = md.digest(originString.getBytes("utf-8")); + //将得到的字节数组变成字符串返回 + String resultString = byteArrayToHexString(results); + return resultString.toUpperCase(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + return null; + } + /** + * 转换字节数组为十六进制字符串 + * + * @param + * @return 十六进制字符串 + */ + private static String byteArrayToHexString(byte[] b) { + StringBuffer resultSb = new StringBuffer(); + for (int i = 0; i < b.length; i++) { + resultSb.append(byteToHexString(b[i])); + } + return resultSb.toString(); + } + + private static String byteToHexString(byte b) { + int n = b; + if (n < 0) { + n += 256; + } + int d1 = n / 16; + int d2 = n % 16; + return hexDigits[d1] + hexDigits[d2]; + } + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RSAUtils.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RSAUtils.java new file mode 100644 index 0000000..acdf56c --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/RSAUtils.java @@ -0,0 +1,171 @@ +package com.schisandra.auth.common.utils; + +import org.apache.commons.codec.binary.Base64; +import javax.crypto.Cipher; +import java.io.ByteArrayOutputStream; +import java.security.Key; +import java.security.KeyFactory; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.spec.X509EncodedKeySpec; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @ClassName RSAUtils + * @Description TODO + * @Author L + * @Date 2024/1/26 17:28 + */ +public class RSAUtils { + + /** + * 加密算法RSA + */ + private static final String KEY_ALGORITHM = "RSA"; + + /** + * 算法名称/加密模式/数据填充方式 + * 默认:RSA/ECB/PKCS1Padding + */ + private static final String ALGORITHMS = "RSA/ECB/PKCS1Padding"; + + /** + * RSA最大加密明文大小 + */ + private static final int MAX_ENCRYPT_BLOCK = 245; + + /** + * RSA最大解密密文大小 + */ + private static final int MAX_DECRYPT_BLOCK = 256; + + /** + * RSA 位数 如果采用2048 上面最大加密和最大解密则须填写: 245 256 + */ + private static final int INITIALIZE_LENGTH = 2048; + + /** + * 后端RSA的密钥对(公钥和私钥)Map,由静态代码块赋值 + */ + private static final Map map = new LinkedHashMap<>(2); + + /** + * 生成密钥对(公钥和私钥) + */ + + public static Map genKeyPair() throws Exception { + KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(KEY_ALGORITHM); + keyPairGen.initialize(INITIALIZE_LENGTH); + KeyPair keyPair = keyPairGen.generateKeyPair(); + // 获取公钥 + RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); + // 获取私钥 + RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); + // 得到公钥字符串 + String publicKeyString = Base64.encodeBase64String(publicKey.getEncoded()); + // 得到私钥字符串 + String privateKeyString = Base64.encodeBase64String((privateKey.getEncoded())); + map.put("publicKey",publicKeyString); + map.put("privateKey",privateKeyString); + return map; + } + public static String getPrivateKey(){ + return map.get("privateKey"); + } + public static String getPublicKey(){ + return map.get("publicKey"); + } + /** + * RSA私钥解密 + * @param data BASE64编码过的密文 + * @param privateKey 私钥(BASE64编码) + * @return utf-8编码的明文 + */ + public static byte[] decryptByPrivateKey(byte[] data, String privateKey) throws Exception { + //base64格式的key字符串转Key对象 + Key privateK = KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKey))); + Cipher cipher = Cipher.getInstance(ALGORITHMS); + cipher.init(Cipher.DECRYPT_MODE, privateK); + + //分段进行解密操作 + return encryptAndDecryptOfSubsection(data, cipher, MAX_DECRYPT_BLOCK); + } + + /** + * RSA公钥加密 + * @param data BASE64编码过的密文 + * @param publicKey 公钥(BASE64编码) + * @return utf-8编码的明文 + */ + public static byte[] encryptByPublicKey(byte[] data, String publicKey) throws Exception { + //base64格式的key字符串转Key对象 + Key publicK = KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(Base64.decodeBase64(publicKey))); + Cipher cipher = Cipher.getInstance(ALGORITHMS); + cipher.init(Cipher.ENCRYPT_MODE, publicK); + //分段进行加密操作 + return encryptAndDecryptOfSubsection(data, cipher, MAX_ENCRYPT_BLOCK); + } + + /** + * RSA公钥解密 + * @param data BASE64编码过的密文 + * @param publicKey RSA公钥 + * @return utf-8编码的明文 + */ + public static byte[] pubKeyDec(byte[] data, String publicKey) throws Exception { + //base64格式的key字符串转Key对象 + Key privateK = KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(Base64.decodeBase64(publicKey))); + Cipher cipher = Cipher.getInstance(ALGORITHMS); + cipher.init(Cipher.DECRYPT_MODE, privateK); + + //分段进行解密操作 + return encryptAndDecryptOfSubsection(data, cipher, MAX_DECRYPT_BLOCK); + } + + + /** + * RSA私钥加密 + * @param data 待加密的明文 + * @param privateKey RSA私钥 + * @return 经BASE64编码后的密文 + */ + public static byte[] privKeyEnc(byte[] data, String privateKey) throws Exception { + + //base64格式的key字符串转Key对象 + Key publicK = KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKey))); + Cipher cipher = Cipher.getInstance(ALGORITHMS); + cipher.init(Cipher.ENCRYPT_MODE, publicK); + + //分段进行加密操作 + return encryptAndDecryptOfSubsection(data, cipher, MAX_ENCRYPT_BLOCK); + } + + /** + * 分段进行加密、解密操作 + */ + private static byte[] encryptAndDecryptOfSubsection(byte[] data, Cipher cipher, int encryptBlock) throws Exception { + int inputLen = data.length; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int offSet = 0; + byte[] cache; + int i = 0; + // 对数据分段加密 + while (inputLen - offSet > 0) { + if (inputLen - offSet > encryptBlock) { + cache = cipher.doFinal(data, offSet, encryptBlock); + } else { + cache = cipher.doFinal(data, offSet, inputLen - offSet); + } + out.write(cache, 0, cache.length); + i++; + offSet = i * encryptBlock; + } + out.close(); + return out.toByteArray(); + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/SmsCodeUtils.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/SmsCodeUtils.java new file mode 100644 index 0000000..c7f0b49 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/SmsCodeUtils.java @@ -0,0 +1,32 @@ +package com.schisandra.auth.common.utils; + +import java.util.Random; + +public class SmsCodeUtils { + public static Integer generateValidateCode(int length){ + Integer code =null; + + //长度为4 + if(length == 4){ + //生成随机数,最大为9999 + code = new Random().nextInt(9999); + if(code < 1000){ + //保证随机数为4位数字 + code = code + 1000; + } + //长度为6 + }else if(length == 6){ + //生成随机数,最大为999999 + code = new Random().nextInt(999999); + if(code < 100000){ + //保证随机数为6位数字 + code = code + 100000; + } + //其他情况 + }else{ + throw new RuntimeException("只能生成4位或6位数字验证码"); + } + return code; + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/pom.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/pom.xml index bed94cc..9891b65 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/pom.xml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/pom.xml @@ -13,6 +13,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.13.0 1.8 1.8 @@ -21,7 +22,7 @@ org.projectlombok lombok - 1.18.20 + 1.18.24 diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java index 866b651..e9b5ba8 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java @@ -13,7 +13,8 @@ import java.util.Date; * @since 2024-04-15 19:04:11 */ @Data -public class SchisandraAuthPermissionBO implements Serializable { +public class +SchisandraAuthPermissionBO implements Serializable { private Long id; diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraSmsConfigBO.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraSmsConfigBO.java new file mode 100644 index 0000000..7d574e5 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraSmsConfigBO.java @@ -0,0 +1,155 @@ +package com.schisandra.auth.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Data +public class SchisandraSmsConfigBO 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-domain/src/main/java/com/schisandra/auth/domain/convert/SchisandraSmsConfigBOConvert.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/convert/SchisandraSmsConfigBOConvert.java new file mode 100644 index 0000000..2a5a579 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/convert/SchisandraSmsConfigBOConvert.java @@ -0,0 +1,48 @@ +package com.schisandra.auth.domain.convert; + +import com.schisandra.auth.domain.bo.SchisandraAuthUserBO; +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import lombok.Data; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Mapper(componentModel = "spring") +public interface SchisandraSmsConfigBOConvert { + + SchisandraSmsConfigBOConvert INSTANCE = Mappers.getMapper(SchisandraSmsConfigBOConvert.class); + + /** + * @description 将bo转换为实体 + * @param schisandraSmsConfigBO + * @return com.schisandra.auth.infra.basic.entity.SchisandraAuthUser + * @author landaiqing + * @date 2024/3/21 23:13 + */ + SchisandraSmsConfig convertBOToEntity(SchisandraSmsConfigBO schisandraSmsConfigBO); + + /** + * @description 将实体转换为bo + * @param schisandraSmsConfig + * @return com.schisandra.auth.domain.bo.SchisandraAuthUserBO + * @author landaiqing + * @date 2024/3/21 23:13 + */ + SchisandraSmsConfigBO convertEntityToBO(SchisandraSmsConfig schisandraSmsConfig); + + List convertEntityToBOList(List schisandraSmsConfigs); + + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthPermissionDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthPermissionDomainService.java index 7091ab2..a58509e 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthPermissionDomainService.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthPermissionDomainService.java @@ -8,6 +8,6 @@ public interface SchisandraAuthPermissionDomainService { Object update(SchisandraAuthPermissionBO schisandraAuthPermissionBO); Object delete(SchisandraAuthPermissionBO schisandraAuthPermissionBO); Object insert(SchisandraAuthPermissionBO schisandraAuthPermissionBO); - SchisandraAuthPermission select(SchisandraAuthPermissionBO schisandraAuthPermissionBO); + SchisandraAuthPermissionBO select(SchisandraAuthPermissionBO schisandraAuthPermissionBO); } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java index 374997f..276339f 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java @@ -27,7 +27,7 @@ public interface SchisandraAuthUserDomainService { * @author msz * @return com.schisandra.auth.infra.basic.entity.SchisandraAuthUser */ - SchisandraAuthUser queryById(SchisandraAuthUserBO schisandraAuthUserBO); + SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO); /** * @description 添加用户信息 * @param schisandraAuthUserBO diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraSmsConfigDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraSmsConfigDomainService.java new file mode 100644 index 0000000..68b55bf --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraSmsConfigDomainService.java @@ -0,0 +1,22 @@ +package com.schisandra.auth.domain.service; + + +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; + +import java.util.List; + +/** + * 用户领域service + * + * @author landaiqing + * @date 2024/3/21 + */ +public interface SchisandraSmsConfigDomainService { + + + + List queryAll(); + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthPermissionDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthPermissionDomainServiceImpl.java index 4c4a107..05df5fe 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthPermissionDomainServiceImpl.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthPermissionDomainServiceImpl.java @@ -62,11 +62,12 @@ public class SchisandraAuthPermissionDomainServiceImpl implements SchisandraAuth * @date: 2024/4/17 17:07 */ @Override - public SchisandraAuthPermission select(SchisandraAuthPermissionBO schisandraAuthPermissionBO) { + public SchisandraAuthPermissionBO select(SchisandraAuthPermissionBO schisandraAuthPermissionBO) { SchisandraAuthPermission schisandraAuthPermission = SchisandraAuthPermissionBOConverter.INSTANCE.convertBOToEntity(schisandraAuthPermissionBO); SchisandraAuthPermission schisandraAuthPermission1 =schisandraAuthPermissionService.queryById(schisandraAuthPermission.getId()); - return schisandraAuthPermission1; + SchisandraAuthPermissionBO schisandraAuthPermissionBO1 = SchisandraAuthPermissionBOConverter.INSTANCE.convertEntityToBO(schisandraAuthPermission1); + return schisandraAuthPermissionBO1; } } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java index 2a5418b..4fa075a 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java @@ -38,9 +38,10 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo * @date 2024/4/3 22:10 */ @Override - public SchisandraAuthUser queryById(SchisandraAuthUserBO schisandraAuthUserBO) { + public SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO) { SchisandraAuthUser schisandraAuthUser = schisandraAuthUserService.queryById(schisandraAuthUserBO.getId()); - return schisandraAuthUser; + SchisandraAuthUserBO schisandraAuthUserBO1 = SchisandraAuthUserBOConverter.INSTANCE.convertEntityToBO(schisandraAuthUser); + return schisandraAuthUserBO1; } /** * @description 添加用户信息 diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraSmsConfigDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraSmsConfigDomainServiceImpl.java new file mode 100644 index 0000000..1a5056d --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraSmsConfigDomainServiceImpl.java @@ -0,0 +1,26 @@ +package com.schisandra.auth.domain.service.impl; + +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.domain.convert.SchisandraSmsConfigBOConvert; +import com.schisandra.auth.domain.service.SchisandraSmsConfigDomainService; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import com.schisandra.auth.infra.basic.service.SchisandraSmsConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +@Service +@Slf4j +public class SchisandraSmsConfigDomainServiceImpl implements SchisandraSmsConfigDomainService { + @Resource + private SchisandraSmsConfigService schisandraSmsConfigService; + @Override + public List queryAll() { + + List schisandraSmsConfigs = schisandraSmsConfigService.queryAll(); + return SchisandraSmsConfigBOConvert.INSTANCE.convertEntityToBOList(schisandraSmsConfigs); + + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/dao/SchisandraSmsConfigDao.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/dao/SchisandraSmsConfigDao.java new file mode 100644 index 0000000..fdd11b0 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/dao/SchisandraSmsConfigDao.java @@ -0,0 +1,86 @@ +package com.schisandra.auth.infra.basic.dao; + +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Pageable; + +import java.util.List; + +/** + * (SchisandraSmsConfig)表数据库访问层 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +public interface SchisandraSmsConfigDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraSmsConfig queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param schisandraSmsConfig 查询条件 + * @param pageable 分页对象 + * @return 对象列表 + */ + List queryAllByLimit(SchisandraSmsConfig schisandraSmsConfig, @Param("pageable") Pageable pageable); + + List queryAll(); + + /** + * 统计总行数 + * + * @param schisandraSmsConfig 查询条件 + * @return 总行数 + */ + long count(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 新增数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 影响行数 + */ + int insert(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 影响行数 + */ + int update(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/entity/SchisandraSmsConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/entity/SchisandraSmsConfig.java new file mode 100644 index 0000000..4a264cc --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/entity/SchisandraSmsConfig.java @@ -0,0 +1,174 @@ +package com.schisandra.auth.infra.basic.entity; + +import lombok.Data; + +import java.util.Date; +import java.io.Serializable; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Data +public class SchisandraSmsConfig 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; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 是否删除 0 未删除 1已删除 + */ + private Integer isDeleted; + + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraSmsConfigService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraSmsConfigService.java new file mode 100644 index 0000000..1ab2f35 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraSmsConfigService.java @@ -0,0 +1,60 @@ +package com.schisandra.auth.infra.basic.service; + +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; + +import java.util.List; + +/** + * (SchisandraSmsConfig)表服务接口 + * + * @author makejava + * @since 2024-05-08 20:09:55 + */ +public interface SchisandraSmsConfigService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraSmsConfig queryById(Integer id); + + List queryAll(); + + /** + * 分页查询 + * + * @param schisandraSmsConfig 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + Page queryByPage(SchisandraSmsConfig schisandraSmsConfig, PageRequest pageRequest); + + /** + * 新增数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + SchisandraSmsConfig insert(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 修改数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + SchisandraSmsConfig update(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraSmsConfigServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraSmsConfigServiceImpl.java new file mode 100644 index 0000000..66f2ba7 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraSmsConfigServiceImpl.java @@ -0,0 +1,88 @@ +package com.schisandra.auth.infra.basic.service.impl; + +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import com.schisandra.auth.infra.basic.dao.SchisandraSmsConfigDao; +import com.schisandra.auth.infra.basic.service.SchisandraSmsConfigService; +import org.springframework.stereotype.Service; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (SchisandraSmsConfig)表服务实现类 + * + * @author makejava + * @since 2024-05-08 20:09:55 + */ +@Service("schisandraSmsConfigService") +public class SchisandraSmsConfigServiceImpl implements SchisandraSmsConfigService { + @Resource + private SchisandraSmsConfigDao schisandraSmsConfigDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraSmsConfig queryById(Integer id) { + return this.schisandraSmsConfigDao.queryById(id); + } + + /** + * 分页查询 + * + * @param schisandraSmsConfig 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + @Override + public Page queryByPage(SchisandraSmsConfig schisandraSmsConfig, PageRequest pageRequest) { + long total = this.schisandraSmsConfigDao.count(schisandraSmsConfig); + return new PageImpl<>(this.schisandraSmsConfigDao.queryAllByLimit(schisandraSmsConfig, pageRequest), pageRequest, total); + } + + @Override + public List queryAll() { + return this.schisandraSmsConfigDao.queryAll(); + } + + /** + * 新增数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + @Override + public SchisandraSmsConfig insert(SchisandraSmsConfig schisandraSmsConfig) { + this.schisandraSmsConfigDao.insert(schisandraSmsConfig); + return schisandraSmsConfig; + } + + /** + * 修改数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + @Override + public SchisandraSmsConfig update(SchisandraSmsConfig schisandraSmsConfig) { + this.schisandraSmsConfigDao.update(schisandraSmsConfig); + return this.queryById(schisandraSmsConfig.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.schisandraSmsConfigDao.deleteById(id) > 0; + } +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/utils/DruidEncryptUtil.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/utils/DruidEncryptUtil.java index cd823ba..bf4f79b 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/utils/DruidEncryptUtil.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/utils/DruidEncryptUtil.java @@ -44,7 +44,7 @@ public class DruidEncryptUtil { } public static void main(String[] args) throws Exception { - String encrypt = encrypt("$LDQ20020618xxx$"); + String encrypt = encrypt(""); System.out.println("encrypt:" + encrypt); } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/mapper/SchisandraSmsConfigDao.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/mapper/SchisandraSmsConfigDao.xml new file mode 100644 index 0000000..22e9dd8 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/mapper/SchisandraSmsConfigDao.xml @@ -0,0 +1,499 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into schisandra_sms_config(config_id,request_url,template_name,'action',region,access_key_id,access_key_secret,supplier,signature,sdk_app_id,template_id,weight,retry_interval,max_retries,maximum,base_url,server_ip,server_port,sender,status_call_back,url,template_url,code_url,verify_url,need_up,conn_timeout,is_simple,callback_url,mch_id,app_key,app_id,version,single_msg_url,mass_msg_url,signature_Id,created_by,created_time,update_time,update_by,is_deleted) + values (#{configId},#{requestUrl},#{templateName},#{action},#{region},#{accessKeyId},#{accessKeySecret},#{supplier},#{signature},#{sdkAppId},#{templateId},#{weight},#{retryInterval},#{maxRetries},#{maximum},#{baseUrl},#{serverIp},#{serverPort},#{sender},#{statusCallBack},#{url},#{templateUrl},#{codeUrl},#{verifyUrl},#{needUp},#{connTimeout},#{isSimple},#{callbackUrl},#{mchId},#{appKey},#{appId},#{version},#{singleMsgUrl},#{massMsgUrl},#{signatureId},#{createdBy},#{createdTime},#{updateTime},#{updateBy},#{isDeleted}) + + + + insert into + schisandra_sms_config(config_id,request_url,template_name,'action',region,access_key_id,access_key_secret,supplier,signature,sdk_app_id,template_id,weight,retry_interval,max_retries,maximum,base_url,server_ip,server_port,sender,status_call_back,url,template_url,code_url,verify_url,need_up,conn_timeout,is_simple,callback_url,mch_id,app_key,app_id,version,single_msg_url,mass_msg_url,signature_Id,created_by,created_time,update_time,update_by,is_deleted) + values + + (#{entity.configId},#{entity.requestUrl},#{entity.templateName},#{entity.action},#{entity.region},#{entity.accessKeyId},#{entity.accessKeySecret},#{entity.supplier},#{entity.signature},#{entity.sdkAppId},#{entity.templateId},#{entity.weight},#{entity.retryInterval},#{entity.maxRetries},#{entity.maximum},#{entity.baseUrl},#{entity.serverIp},#{entity.serverPort},#{entity.sender},#{entity.statusCallBack},#{entity.url},#{entity.templateUrl},#{entity.codeUrl},#{entity.verifyUrl},#{entity.needUp},#{entity.connTimeout},#{entity.isSimple},#{entity.callbackUrl},#{entity.mchId},#{entity.appKey},#{entity.appId},#{entity.version},#{entity.singleMsgUrl},#{entity.massMsgUrl},#{entity.signatureId},#{entity.createdBy},#{entity.createdTime},#{entity.updateTime},#{entity.updateBy},#{entity.isDeleted}) + + + + + insert into + schisandra_sms_config(config_id,request_url,template_name,'action',region,access_key_id,access_key_secret,supplier,signature,sdk_app_id,template_id,weight,retry_interval,max_retries,maximum,base_url,server_ip,server_port,sender,status_call_back,url,template_url,code_url,verify_url,need_up,conn_timeout,is_simple,callback_url,mch_id,app_key,app_id,version,single_msg_url,mass_msg_url,signature_Id,created_by,created_time,update_time,update_by,is_deleted) + values + + (#{entity.configId},#{entity.requestUrl},#{entity.templateName},#{entity.action},#{entity.region},#{entity.accessKeyId},#{entity.accessKeySecret},#{entity.supplier},#{entity.signature},#{entity.sdkAppId},#{entity.templateId},#{entity.weight},#{entity.retryInterval},#{entity.maxRetries},#{entity.maximum},#{entity.baseUrl},#{entity.serverIp},#{entity.serverPort},#{entity.sender},#{entity.statusCallBack},#{entity.url},#{entity.templateUrl},#{entity.codeUrl},#{entity.verifyUrl},#{entity.needUp},#{entity.connTimeout},#{entity.isSimple},#{entity.callbackUrl},#{entity.mchId},#{entity.appKey},#{entity.appId},#{entity.version},#{entity.singleMsgUrl},#{entity.massMsgUrl},#{entity.signatureId},#{entity.createdBy},#{entity.createdTime},#{entity.updateTime},#{entity.updateBy},#{entity.isDeleted}) + + on duplicate key update + config_id = values(config_id)request_url = values(request_url)template_name = values(template_name)action = + values(action)region = values(region)access_key_id = values(access_key_id)access_key_secret = + values(access_key_secret)supplier = values(supplier)signature = values(signature)sdk_app_id = + values(sdk_app_id)template_id = values(template_id)weight = values(weight)retry_interval = + values(retry_interval)max_retries = values(max_retries)maximum = values(maximum)base_url = + values(base_url)server_ip = values(server_ip)server_port = values(server_port)sender = + values(sender)status_call_back = values(status_call_back)url = values(url)template_url = + values(template_url)code_url = values(code_url)verify_url = values(verify_url)need_up = + values(need_up)conn_timeout = values(conn_timeout)is_simple = values(is_simple)callback_url = + values(callback_url)mch_id = values(mch_id)app_key = values(app_key)app_id = values(app_id)version = + values(version)single_msg_url = values(single_msg_url)mass_msg_url = values(mass_msg_url)signature_Id = + values(signature_Id)created_by = values(created_by)created_time = values(created_time)update_time = + values(update_time)update_by = values(update_by)is_deleted = values(is_deleted) + + + + + update schisandra_sms_config + + + config_id = #{configId}, + + + request_url = #{requestUrl}, + + + template_name = #{templateName}, + + + `action` = #{action}, + + + region = #{region}, + + + access_key_id = #{accessKeyId}, + + + access_key_secret = #{accessKeySecret}, + + + supplier = #{supplier}, + + + signature = #{signature}, + + + sdk_app_id = #{sdkAppId}, + + + template_id = #{templateId}, + + + weight = #{weight}, + + + retry_interval = #{retryInterval}, + + + max_retries = #{maxRetries}, + + + maximum = #{maximum}, + + + base_url = #{baseUrl}, + + + server_ip = #{serverIp}, + + + server_port = #{serverPort}, + + + sender = #{sender}, + + + status_call_back = #{statusCallBack}, + + + url = #{url}, + + + template_url = #{templateUrl}, + + + code_url = #{codeUrl}, + + + verify_url = #{verifyUrl}, + + + need_up = #{needUp}, + + + conn_timeout = #{connTimeout}, + + + is_simple = #{isSimple}, + + + callback_url = #{callbackUrl}, + + + mch_id = #{mchId}, + + + app_key = #{appKey}, + + + app_id = #{appId}, + + + version = #{version}, + + + single_msg_url = #{singleMsgUrl}, + + + mass_msg_url = #{massMsgUrl}, + + + signature_Id = #{signatureId}, + + + created_by = #{createdBy}, + + + created_time = #{createdTime}, + + + update_time = #{updateTime}, + + + update_by = #{updateBy}, + + + is_deleted = #{isDeleted}, + + + where id = #{id} + + + + + delete + from schisandra_sms_config + where id = #{id} + + + + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/sql/schisandra-cloud-storage.sql b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/sql/schisandra-cloud-storage.sql new file mode 100644 index 0000000..448a191 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/sql/schisandra-cloud-storage.sql @@ -0,0 +1,144 @@ +/* + Navicat Premium Data Transfer + + Source Server : MySQL Cloud + Source Server Type : MySQL + Source Server Version : 50744 (5.7.44) + Source Host : 116.196.80.239:3306 + Source Schema : schisandra-cloud-storage + + Target Server Type : MySQL + Target Server Version : 50744 (5.7.44) + File Encoding : 65001 + + Date: 26/04/2024 01:28:16 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for schisandra_auth_permission +-- ---------------------------- +DROP TABLE IF EXISTS `schisandra_auth_permission`; +CREATE TABLE `schisandra_auth_permission` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `parent_id` bigint(20) NULL DEFAULT NULL, + `type` tinyint(4) NULL DEFAULT NULL, + `menu_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `status` tinyint(4) NULL DEFAULT NULL, + `show` tinyint(4) NULL DEFAULT NULL, + `icon` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `permission_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(11) NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of schisandra_auth_permission +-- ---------------------------- +INSERT INTO `schisandra_auth_permission` VALUES (1, '普通用户', 0, 1, '1adiwd/awdw', 0, 0, 'httt://1.png', 'subject:add', NULL, NULL, NULL, NULL, 1); +INSERT INTO `schisandra_auth_permission` VALUES (2, '管理员', 0, 1, '1adiwd/awdw', 0, 0, 'httt://1.png', 'subject:add', NULL, NULL, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for schisandra_auth_role +-- ---------------------------- +DROP TABLE IF EXISTS `schisandra_auth_role`; +CREATE TABLE `schisandra_auth_role` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `role_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `role_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(11) NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of schisandra_auth_role +-- ---------------------------- +INSERT INTO `schisandra_auth_role` VALUES (1, '普通用户', 'normal_user', NULL, NULL, NULL, NULL, 0); +INSERT INTO `schisandra_auth_role` VALUES (2, '管理员', 'admin', NULL, NULL, NULL, NULL, 0); +INSERT INTO `schisandra_auth_role` VALUES (3, '超级管理员', 'super_admin', NULL, NULL, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for schisandra_auth_role_permission +-- ---------------------------- +DROP TABLE IF EXISTS `schisandra_auth_role_permission`; +CREATE TABLE `schisandra_auth_role_permission` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `role_id` bigint(20) NULL DEFAULT NULL, + `permission_id` bigint(20) NULL DEFAULT NULL, + `created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(11) NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of schisandra_auth_role_permission +-- ---------------------------- +INSERT INTO `schisandra_auth_role_permission` VALUES (1, 2, 1, NULL, NULL, NULL, NULL, 0); +INSERT INTO `schisandra_auth_role_permission` VALUES (2, 3, 2, NULL, NULL, NULL, NULL, 0); +INSERT INTO `schisandra_auth_role_permission` VALUES (3, 1, 1, NULL, NULL, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for schisandra_auth_user +-- ---------------------------- +DROP TABLE IF EXISTS `schisandra_auth_user`; +CREATE TABLE `schisandra_auth_user` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `user_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `nick_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `email` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `sex` tinyint(4) NULL DEFAULT NULL, + `avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `status` tinyint(4) NULL DEFAULT NULL, + `introduce` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `ext_json` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(11) NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of schisandra_auth_user +-- ---------------------------- +INSERT INTO `schisandra_auth_user` VALUES (8, 'oF9UX6c2GNEHUpoQZRTrkHTmLYHs', NULL, NULL, NULL, NULL, NULL, 'http://117.72.10.84:9000/user/icon/微信图片_20231203153718(1).png', 0, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `schisandra_auth_user` VALUES (9, '666', '666', '666', '555', '666', 1, '', 1, '', '', NULL, NULL, NULL, NULL, 1); + +-- ---------------------------- +-- Table structure for schisandra_auth_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `schisandra_auth_user_role`; +CREATE TABLE `schisandra_auth_user_role` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) NULL DEFAULT NULL, + `role_id` bigint(20) NULL DEFAULT NULL, + `created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(11) NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of schisandra_auth_user_role +-- ---------------------------- + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/pom.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/pom.xml index 8591203..746aa35 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/pom.xml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/pom.xml @@ -101,6 +101,35 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 1.8 + 1.8 + UTF-8 + + + org.projectlombok + lombok + 1.18.24 + + + + org.mapstruct + mapstruct-processor + 1.4.2.Final + + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml index 735574d..6391824 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml @@ -2,10 +2,10 @@ server: port: 3000 spring: datasource: - username: landaiqing - password: Z1JyO9hVmDLYbpWnM7oiFO3BEoDCrV6njYjl/2oudBHwTepxLxnaZ1aDfohrYwYpGWUodgu7gnRcZ5mfIm6lIg== + username: root + password: BZbVbGDBePiA2q8/mt0eMxKNpHniDzxBtOxFadQiAOTDzCDlopC4qOKwwBEi9CAZcuFsCrRJdwn0wP6jwsnzxw== driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://116.196.80.239:3306/schisandra-cloud-storage?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true + url: jdbc:mysql://1.95.0.111:3306/schisandra-cloud-storage?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 20 @@ -32,7 +32,7 @@ spring: # Redis数据库索引(默认为0) database: 1 # Redis服务器地址 - host: 116.196.80.239 + host: 1.95.0.111 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空) @@ -49,7 +49,7 @@ spring: max-idle: 10 # 连接池中的最小空闲连接 min-idle: 0 -publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKXX1HPAKowh8Ub9fDTGI5exGLMRppbVQFDlDBBxAWcbfdLN5hXgfg02D7wy+jCe9uCdV5vgZR72PFoe+mnLp80CAwEAAQ== +publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANUVxjcrVoirBZaNmDrUqatHEW4FOHbO5ynW6zvhIbRMo6hEFGgglbURkjuHOlgEduxJVz6Xa+sG+FMrxTguOJECAwEAAQ== logging: config: classpath:log4j2-spring.xml ############## Sa-Token 配置 (文档: https://sa-token.cc) ############## @@ -67,41 +67,23 @@ sa-token: # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik) token-style: random-32 # 是否输出操作日志 - is-log: true + is-log: false token-prefix: schisandra + is-print: false -#sms: -# # 标注从yml读取配置 -# config-type: yaml -# blends: -# # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文) -# tx1: -# #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 -# supplier: tencent -# #您的accessKey -# access-key-id: 您的accessKey -# #您的accessKeySecret -# access-key-secret: 您的accessKeySecret -# #您的短信签名 -# signature: 您的短信签名 -# #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置 -# template-id: xxxxxxxx -# #您的sdkAppId -# sdk-app-id: 您的sdkAppId -# # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文) -# tx2: -# #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 -# supplier: tencent -# #您的accessKey -# access-key-id: 您的accessKey -# #您的accessKeySecret -# access-key-secret: 您的accessKeySecret -# #您的短信签名 -# signature: 您的短信签名 -# #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置 -# template-id: xxxxxxxx -# #您的sdkAppId -# sdk-app-id: 您的sdkAppId +sms: + # 标注从yml读取配置 + config-type: yaml + restricted: true + accountMax: 10 + minuteMax: 1 + isPrint: false + HttpLog: true + +# mybatis-plus日志 +mybatis-plus: + global-config: + banner: false justauth: enabled: true diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/banner.txt b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/banner.txt index 390516c..a8184f3 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/banner.txt +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/banner.txt @@ -1,4 +1,4 @@ -${AnsiColor.GREEN} + ,---, ,--.' | ,--, ,---, diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/bootstrap.yml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/bootstrap.yml index c3e60a2..68c0a9e 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/bootstrap.yml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/bootstrap.yml @@ -6,12 +6,12 @@ spring: cloud: nacos: config: - server-addr: 116.196.80.239:8848 + server-addr: 1.95.0.111:8848 prefix: ${spring.application.name} group: DEFAULT_GROUP namespace: file-extension: yaml discovery: enabled: true - server-addr: 116.196.80.239:8848 + server-addr: 1.95.0.111:8848 diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/log4j2-spring.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/log4j2-spring.xml index 2acdb03..04b62c0 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/log4j2-spring.xml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/log4j2-spring.xml @@ -7,10 +7,10 @@ - + - + diff --git a/schisandra-cloud-storage-gateway/pom.xml b/schisandra-cloud-storage-gateway/pom.xml index ef44845..64e2261 100644 --- a/schisandra-cloud-storage-gateway/pom.xml +++ b/schisandra-cloud-storage-gateway/pom.xml @@ -9,10 +9,125 @@ schisandra-cloud-storage-gateway + 8 + 8 + 1.8 UTF-8 + UTF-8 + 2.4.2 + 2021.1 + 2020.0.6 - + + + + org.projectlombok + lombok + 1.18.20 + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + org.springframework.cloud + spring-cloud-starter-gateway + + + org.springframework.cloud + spring-cloud-loadbalancer + + + + cn.dev33 + sa-token-reactor-spring-boot-starter + 1.37.0 + + + + + cn.dev33 + sa-token-redis-jackson + 1.37.0 + + + org.apache.commons + commons-pool2 + + + com.google.code.gson + gson + 2.8.9 + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.0.RELEASE + + + + repackage + + + + + + + + + + central + aliyun maven + http://maven.aliyun.com/nexus/content/groups/public/ + default + + true + + + true + + + diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/GatewayApplication.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/GatewayApplication.java new file mode 100644 index 0000000..f4405ab --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/GatewayApplication.java @@ -0,0 +1,19 @@ +package com.schisandra.gateway; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * 网关启动类 + * + * @author: landaiqing + * @date: 2024/2/7 + */ +@SpringBootApplication +@ComponentScan("com.schisandra") +public class GatewayApplication { + public static void main(String[] args) { + SpringApplication.run(GatewayApplication.class); + } +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/auth/SaTokenConfigure.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/auth/SaTokenConfigure.java new file mode 100644 index 0000000..0ddc1d7 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/auth/SaTokenConfigure.java @@ -0,0 +1,32 @@ +package com.schisandra.gateway.auth; + +import cn.dev33.satoken.context.SaHolder; +import cn.dev33.satoken.reactor.filter.SaReactorFilter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 权限认证的配置器 + * + * @author: landaiqing + */ +@Configuration +public class SaTokenConfigure { + + @Bean + public SaReactorFilter getSaReactorFilter() { + return new SaReactorFilter() + // 拦截地址 + .addInclude("/**") + // 鉴权方法:每次访问进入 + .setAuth(obj -> { + System.out.println("-------- 前端访问path:" + SaHolder.getRequest().getRequestPath()); + // 登录校验 -- 拦截所有路由,并排除/user/doLogin 用于开放登录 + //SaRouter.match("/auth/**", "/auth/user/doLogin", r -> StpUtil.checkRole("admin")); +// SaRouter.match("/oss/**", r -> StpUtil.checkLogin()); +// SaRouter.match("/subject/subject/add", r -> StpUtil.checkPermission("subject:add")); +// SaRouter.match("/subject/**", r -> StpUtil.checkLogin()); + }) + ; + } +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/auth/StpInterfaceImpl.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/auth/StpInterfaceImpl.java new file mode 100644 index 0000000..0e77b9d --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/auth/StpInterfaceImpl.java @@ -0,0 +1,62 @@ +package com.schisandra.gateway.auth; + +import cn.dev33.satoken.stp.StpInterface; +import com.alibaba.cloud.commons.lang.StringUtils; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.schisandra.gateway.entity.AuthPermission; +import com.schisandra.gateway.entity.AuthRole; +import com.schisandra.gateway.redis.RedisUtil; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 自定义权限验证接口扩展 + * + * @author: landaiqing + */ +@Component +public class StpInterfaceImpl implements StpInterface { + + @Resource + private RedisUtil redisUtil; + + private String authPermissionPrefix = "auth.permission"; + + private String authRolePrefix = "auth.role"; + + @Override + public List getPermissionList(Object loginId, String loginType) { + return getAuth(loginId.toString(), authPermissionPrefix); + } + + @Override + public List getRoleList(Object loginId, String loginType) { + return getAuth(loginId.toString(), authRolePrefix); + } + + private List getAuth(String loginId, String prefix) { + String authKey = redisUtil.buildKey(prefix, loginId.toString()); + String authValue = redisUtil.get(authKey); + if (StringUtils.isBlank(authValue)) { + return Collections.emptyList(); + } + List authList = new LinkedList<>(); + if (authRolePrefix.equals(prefix)) { + List roleList = new Gson().fromJson(authValue, new TypeToken>() { + }.getType()); + authList = roleList.stream().map(AuthRole::getRoleKey).collect(Collectors.toList()); + } else if (authPermissionPrefix.equals(prefix)) { + List permissionList = new Gson().fromJson(authValue, new TypeToken>() { + }.getType()); + authList = permissionList.stream().map(AuthPermission::getPermissionKey).collect(Collectors.toList()); + } + return authList; + } + +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/AuthPermission.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/AuthPermission.java new file mode 100644 index 0000000..8d13f83 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/AuthPermission.java @@ -0,0 +1,53 @@ +package com.schisandra.gateway.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (AuthPermission)实体类 + * + * @author landaiqing + */ +@Data +public class AuthPermission implements Serializable { + private Long id; + + private String name; + + private Long parentId; + + private Integer type; + + private String menuUrl; + + private Integer status; + + private Integer show; + + private String icon; + + private String permissionKey; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + + +} + diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/AuthRole.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/AuthRole.java new file mode 100644 index 0000000..b61acd6 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/AuthRole.java @@ -0,0 +1,42 @@ +package com.schisandra.gateway.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (AuthRole)实体类 + * + * @author landaiqing + * @since 2024-2-18 18:55:50 + */ +@Data +public class AuthRole implements Serializable { + + private Long id; + + private String roleName; + + private String roleKey; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/Result.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/Result.java new file mode 100644 index 0000000..5b8713a --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/entity/Result.java @@ -0,0 +1,59 @@ +package com.schisandra.gateway.entity; + +import com.schisandra.gateway.enums.ResultCodeEnum; +import lombok.Data; + +@Data +public class Result { + + private Boolean success; + + private Integer code; + + private String message; + + private T data; + + public static Result ok(){ + Result result = new Result(); + result.setSuccess(true); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMessage(ResultCodeEnum.SUCCESS.getDesc()); + return result; + } + + public static Result ok(T data){ + Result result = new Result(); + result.setSuccess(true); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMessage(ResultCodeEnum.SUCCESS.getDesc()); + result.setData(data); + return result; + } + + public static Result fail(){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(ResultCodeEnum.FAIL.getCode()); + result.setMessage(ResultCodeEnum.FAIL.getDesc()); + return result; + } + + public static Result fail(T data){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(ResultCodeEnum.FAIL.getCode()); + result.setMessage(ResultCodeEnum.FAIL.getDesc()); + result.setData(data); + return result; + } + + public static Result fail(Integer code,String message){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(code); + result.setMessage(message); + return result; + } + +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/enums/ResultCodeEnum.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/enums/ResultCodeEnum.java new file mode 100644 index 0000000..3addbda --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/enums/ResultCodeEnum.java @@ -0,0 +1,24 @@ +package com.schisandra.gateway.enums; + +import lombok.Getter; + +@Getter +public enum ResultCodeEnum { + SUCCESS(200,"成功"), + FAIL(500,"失败"); + private int code; + private String desc; + + ResultCodeEnum(int code,String desc){ + this.code=code; + this.desc=desc; + } + public static ResultCodeEnum getByCode(int codeVal){ + for(ResultCodeEnum resultCodeEnum:ResultCodeEnum.values()){ + if(resultCodeEnum.code==codeVal){ + return resultCodeEnum; + } + } + return null; + } +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/exception/GatewayExceptionHandler.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/exception/GatewayExceptionHandler.java new file mode 100644 index 0000000..9444e35 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/exception/GatewayExceptionHandler.java @@ -0,0 +1,55 @@ +package com.schisandra.gateway.exception; + +import cn.dev33.satoken.exception.SaTokenException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.schisandra.gateway.entity.Result; +import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; +import org.springframework.core.io.buffer.DataBufferFactory; +import org.springframework.http.MediaType; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + * @Classname GatewayExceptionHandler + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.club.gateway.exception + * @Author: landaiqing + * @CreateTime: 2024-05-18 17:52 + * @Description: 网关全局异常处理 + * @Version: 1.0 + */ +@Component +public class GatewayExceptionHandler implements ErrorWebExceptionHandler { + private ObjectMapper objectMapper=new ObjectMapper(); + @Override + public Mono handle(ServerWebExchange serverWebExchange, Throwable throwable) { + ServerHttpRequest request = serverWebExchange.getRequest(); + ServerHttpResponse response = serverWebExchange.getResponse(); + Integer code=200; + String message=""; + if(throwable instanceof SaTokenException){ + code=401; + message="用户无权限"; + }else { + code=500; + message="系统繁忙"; + } + Result result = Result.fail(code, message); + response.getHeaders().setContentType(MediaType.APPLICATION_JSON); + return response.writeWith(Mono.fromSupplier(()->{ + DataBufferFactory dataBufferFactory=response.bufferFactory(); + byte[] bytes=null; + try { + bytes = objectMapper.writeValueAsBytes(result); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return dataBufferFactory.wrap(bytes); + })); + + } +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/filter/LoginFilter.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/filter/LoginFilter.java new file mode 100644 index 0000000..2461c13 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/filter/LoginFilter.java @@ -0,0 +1,46 @@ +package com.schisandra.gateway.filter; + +import cn.dev33.satoken.stp.SaTokenInfo; +import cn.dev33.satoken.stp.StpUtil; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + * @Classname LoginFilter + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.club.gateway.filter + * @Author: landaiqing + * @CreateTime: 2024-03-03 17:41 + * @Description: 登录拦截器 + * @Version: 1.0 + */ +@Component +@Slf4j +public class LoginFilter implements GlobalFilter { + @Override + @SneakyThrows + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + ServerHttpRequest.Builder mutate = request.mutate(); + String url = request.getURI().getPath(); + log.info("LoginFilter.filter.url:{}", url); + if (url.equals("/user/doLogin") || url.equals("/user/getUserInfo")) { + return chain.filter(exchange); + } + SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); + String loginId = (String) tokenInfo.getLoginId(); + if (StringUtils.isEmpty(loginId)) { + throw new Exception("未获取到用户信息"); + } + mutate.header("loginId", loginId); + + return chain.filter(exchange.mutate().request(mutate.build()).build()); + } +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/redis/RedisConfig.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/redis/RedisConfig.java new file mode 100644 index 0000000..2e505fb --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/redis/RedisConfig.java @@ -0,0 +1,49 @@ +package com.schisandra.gateway.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; + +/** + * @Classname RedisConfig + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.club.gateway.redis + * @Author: landaiqing + * @CreateTime: 2024-02-18 18:10 + * @Description: redis的config处理 + * @Version: 1.0 + */ +@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 jackson2JsonRedisSerializer() { + Jackson2JsonRedisSerializer jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); + jsonRedisSerializer.setObjectMapper(objectMapper); + return jsonRedisSerializer; + } + +} diff --git a/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/redis/RedisUtil.java b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/redis/RedisUtil.java new file mode 100644 index 0000000..cf08e0b --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/java/com/schisandra/gateway/redis/RedisUtil.java @@ -0,0 +1,107 @@ +package com.schisandra.gateway.redis; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * RedisUtil工具类 + * + * @author: landaiqing + * @date: 2024/2/19 + */ +@Component +@Slf4j +public class RedisUtil { + + @Resource + private RedisTemplate redisTemplate; + + private static final String CACHE_KEY_SEPARATOR = "."; + + /** + * 构建缓存key + */ + public String buildKey(String... strObjs) { + return Stream.of(strObjs).collect(Collectors.joining(CACHE_KEY_SEPARATOR)); + } + + /** + * 是否存在key + */ + public boolean exist(String key) { + return redisTemplate.hasKey(key); + } + + /** + * 删除key + */ + public boolean del(String key) { + return redisTemplate.delete(key); + } + + /** + * set(不带过期) + */ + public void set(String key, String value) { + redisTemplate.opsForValue().set(key, value); + } + + /** + * set(带过期) + */ + public boolean setNx(String key, String value, Long time, TimeUnit timeUnit) { + return redisTemplate.opsForValue().setIfAbsent(key, value, time, timeUnit); + } + + /** + * 获取string类型缓存 + */ + public String get(String key) { + return (String) redisTemplate.opsForValue().get(key); + } + + public Boolean zAdd(String key, String value, Long score) { + return redisTemplate.opsForZSet().add(key, value, Double.valueOf(String.valueOf(score))); + } + + public Long countZset(String key) { + return redisTemplate.opsForZSet().size(key); + } + + public Set rangeZset(String key, long start, long end) { + return redisTemplate.opsForZSet().range(key, start, end); + } + + public Long removeZset(String key, Object value) { + return redisTemplate.opsForZSet().remove(key, value); + } + + public void removeZsetList(String key, Set value) { + value.stream().forEach((val) -> redisTemplate.opsForZSet().remove(key, val)); + } + + public Double score(String key, Object value) { + return redisTemplate.opsForZSet().score(key, value); + } + + public Set rangeByScore(String key, long start, long end) { + return redisTemplate.opsForZSet().rangeByScore(key, Double.valueOf(String.valueOf(start)), Double.valueOf(String.valueOf(end))); + } + + public Object addScore(String key, Object obj, double score) { + return redisTemplate.opsForZSet().incrementScore(key, obj, score); + } + + public Object rank(String key, Object obj) { + return redisTemplate.opsForZSet().rank(key, obj); + } + + +} diff --git a/schisandra-cloud-storage-gateway/src/main/resources/application.yml b/schisandra-cloud-storage-gateway/src/main/resources/application.yml new file mode 100644 index 0000000..0bece70 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/resources/application.yml @@ -0,0 +1,57 @@ +server: + port: 5000 +spring: + cloud: + gateway: + routes: + - id: oss + uri: lb://schisandra-cloud-storage-oss-dev + predicates: + - Path=/oss/** + filters: + - StripPrefix=1 + - id: auth + uri: lb://schisandra-cloud-storage-auth-dev + predicates: + - Path=/auth/** + filters: + - StripPrefix=1 + # redis配置 + redis: + # Redis数据库索引(默认为0) + database: 1 + # Redis服务器地址 + host: 116.196.80.239 + # Redis服务器连接端口 + port: 6379 + # Redis服务器连接密码(默认为空) + password: LDQ20020618xxx + # 连接超时时间 + timeout: 2s + lettuce: + pool: + # 连接池最大连接数 + max-active: 200 + # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-wait: -1ms + # 连接池中的最大空闲连接 + max-idle: 10 + # 连接池中的最小空闲连接 + min-idle: 0 +############## Sa-Token 配置 (文档: https://sa-token.cc) ############## +sa-token: + # token 名称(同时也是 cookie 名称) + token-name: token + # token 有效期(单位:秒) 默认30天,-1 代表永久有效 + timeout: 2592000 + # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结 + active-timeout: -1 + # 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录) + is-concurrent: true + # 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token) + is-share: true + # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik) + token-style: random-32 + # 是否输出操作日志 + is-log: true + token-prefix: schisandra \ No newline at end of file diff --git a/schisandra-cloud-storage-gateway/src/main/resources/bootstrap.yml b/schisandra-cloud-storage-gateway/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..cd94ae5 --- /dev/null +++ b/schisandra-cloud-storage-gateway/src/main/resources/bootstrap.yml @@ -0,0 +1,17 @@ +spring: + application: + name: schisandra-cloud-storage-gateway-dev + profiles: + active: dev + cloud: + nacos: + config: + server-addr: 116.196.80.239:8848 + prefix: ${spring.application.name} + group: DEFAULT_GROUP + namespace: + file-extension: yaml + discovery: + enabled: true + server-addr: 116.196.80.239:8848 + diff --git a/schisandra-cloud-storage-oss/pom.xml b/schisandra-cloud-storage-oss/pom.xml index 35dbc54..2c2df04 100644 --- a/schisandra-cloud-storage-oss/pom.xml +++ b/schisandra-cloud-storage-oss/pom.xml @@ -38,7 +38,7 @@ org.projectlombok lombok - 1.18.20 + 1.18.24 com.alibaba.cloud diff --git a/schisandra-cloud-storage-oss/src/main/resources/application.yml b/schisandra-cloud-storage-oss/src/main/resources/application.yml index f890f70..b142558 100644 --- a/schisandra-cloud-storage-oss/src/main/resources/application.yml +++ b/schisandra-cloud-storage-oss/src/main/resources/application.yml @@ -1,6 +1,6 @@ server: port: 4000 minio: - url: http://116.196.80.239:9000/ + url: http://1.95.0.111:9000/ accessKey: landaiqing secretKey: LDQ20020618xxx diff --git a/schisandra-cloud-storage-oss/src/main/resources/bootstrap.yml b/schisandra-cloud-storage-oss/src/main/resources/bootstrap.yml index 7f1174e..5c4c820 100644 --- a/schisandra-cloud-storage-oss/src/main/resources/bootstrap.yml +++ b/schisandra-cloud-storage-oss/src/main/resources/bootstrap.yml @@ -6,12 +6,12 @@ spring: cloud: nacos: config: - server-addr: 116.196.80.239:8848 + server-addr: 1.95.0.111:8848 prefix: ${spring.application.name} group: DEFAULT_GROUP namespace: file-extension: yaml discovery: enabled: true - server-addr: 116.196.80.239:8848 + server-addr: 1.95.0.111:8848 diff --git a/schisandra-cloud-storage-wechat/pom.xml b/schisandra-cloud-storage-wechat/pom.xml index e084267..d9875d2 100644 --- a/schisandra-cloud-storage-wechat/pom.xml +++ b/schisandra-cloud-storage-wechat/pom.xml @@ -5,7 +5,7 @@ com.schisandra schisandra-cloud-storage-wechat 1.0-SNAPSHOT - pom + jar schisandra-cloud-storage-wechat @@ -31,7 +31,7 @@ org.projectlombok lombok - 1.18.28 + 1.18.24 org.springframework.boot diff --git a/schisandra-cloud-storage-wechat/src/main/resources/application.yml b/schisandra-cloud-storage-wechat/src/main/resources/application.yml index db5625e..4fe070a 100644 --- a/schisandra-cloud-storage-wechat/src/main/resources/application.yml +++ b/schisandra-cloud-storage-wechat/src/main/resources/application.yml @@ -1,12 +1,12 @@ server: - port: 3010 + port: 80 spring: # redis配置 redis: # Redis数据库索引(默认为0) database: 1 # Redis服务器地址 - host: 116.196.80.239 + host: 1.95.0.111 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空)