diff --git a/pom.xml b/pom.xml index 6e1c1f8..4e14e25 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,7 @@ yskj-module-acdr + yskj-module-contact ${project.artifactId} diff --git a/yskj-framework/yskj-spring-boot-starter-security/src/main/java/cn/yskj/linghe/framework/security/config/YskjWebSecurityConfigurerAdapter.java b/yskj-framework/yskj-spring-boot-starter-security/src/main/java/cn/yskj/linghe/framework/security/config/YskjWebSecurityConfigurerAdapter.java index e4bba62..1d228fa 100644 --- a/yskj-framework/yskj-spring-boot-starter-security/src/main/java/cn/yskj/linghe/framework/security/config/YskjWebSecurityConfigurerAdapter.java +++ b/yskj-framework/yskj-spring-boot-starter-security/src/main/java/cn/yskj/linghe/framework/security/config/YskjWebSecurityConfigurerAdapter.java @@ -123,6 +123,7 @@ public class YskjWebSecurityConfigurerAdapter { // 获得 @PermitAll 带来的 URL 列表,免登录 Multimap permitAllUrls = getPermitAllUrlsFromAnnotations(); + System.out.println(permitAllUrls); // 设置每个请求的权限 httpSecurity // ①:全局共享规则 @@ -140,7 +141,7 @@ public class YskjWebSecurityConfigurerAdapter { .requestMatchers(securityProperties.getPermitAllUrls().toArray(new String[0])).permitAll() // 1.3 设置 App API 无需认证 .requestMatchers(buildAppApi("/**")).permitAll() - .requestMatchers("/pet/**").permitAll() + .requestMatchers("/admin-api/contact/**").permitAll() ) // ②:每个项目的自定义规则 .authorizeHttpRequests(c -> authorizeRequestsCustomizers.forEach(customizer -> customizer.customize(c))) diff --git a/yskj-module-contact/pom.xml b/yskj-module-contact/pom.xml new file mode 100644 index 0000000..13bf616 --- /dev/null +++ b/yskj-module-contact/pom.xml @@ -0,0 +1,94 @@ + + + 4.0.0 + + cn.yskj.dev + yskj + ${revision} + + + yskj-module-contact + pom + + yskj-module-contact-api + yskj-module-contact-biz + + + + 17 + 17 + UTF-8 + + + + 这个模块用于与其他的Web 项目进行联系 + + + + + cn.yskj.dev + yskj-module-acdr-api + ${revision} + + + + + cn.yskj.dev + yskj-spring-boot-starter-web + + + + org.projectlombok + lombok + provided + + + + cn.yskj.dev + yskj-spring-boot-starter-biz-tenant + + + + + cn.yskj.dev + yskj-spring-boot-starter-security + + + + + cn.yskj.dev + yskj-spring-boot-starter-mybatis + + + + + cn.yskj.dev + yskj-spring-boot-starter-job + + + + + cn.yskj.dev + yskj-spring-boot-starter-test + + + + cn.hutool + hutool-all + + + + cn.yskj.dev + yskj-spring-boot-starter-excel + + + cn.yskj.dev + yskj-module-infra-biz + 2.1.0-snapshot + compile + + + + diff --git a/yskj-module-contact/yskj-module-contact-api/pom.xml b/yskj-module-contact/yskj-module-contact-api/pom.xml new file mode 100644 index 0000000..d3e103e --- /dev/null +++ b/yskj-module-contact/yskj-module-contact-api/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + cn.yskj.dev + yskj-module-contact + 2.1.0-snapshot + + + yskj-module-contact-api + + + 17 + 17 + UTF-8 + + + + + cn.yskj.dev + yskj-common + + + + diff --git a/yskj-module-contact/yskj-module-contact-biz/pom.xml b/yskj-module-contact/yskj-module-contact-biz/pom.xml new file mode 100644 index 0000000..9da0aad --- /dev/null +++ b/yskj-module-contact/yskj-module-contact-biz/pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + cn.yskj.dev + yskj-module-contact + 2.1.0-snapshot + + + yskj-module-contact-biz + + + 17 + 17 + UTF-8 + + + + + cn.yskj.dev + yskj-module-acdr-api + ${revision} + + + + + cn.yskj.dev + yskj-spring-boot-starter-web + + + + org.projectlombok + lombok + provided + + + + cn.yskj.dev + yskj-spring-boot-starter-biz-tenant + + + + + cn.yskj.dev + yskj-spring-boot-starter-security + + + + + cn.yskj.dev + yskj-spring-boot-starter-mybatis + + + + + cn.yskj.dev + yskj-spring-boot-starter-job + + + + + cn.yskj.dev + yskj-spring-boot-starter-test + + + + cn.yskj.dev + yskj-spring-boot-starter-excel + + + + cn.yskj.dev + yskj-spring-boot-starter-redis + + + + + diff --git a/yskj-module-contact/yskj-module-contact-biz/src/main/java/cn/yskj/linghe/module/contact/controller/admin/FileContactController.java b/yskj-module-contact/yskj-module-contact-biz/src/main/java/cn/yskj/linghe/module/contact/controller/admin/FileContactController.java new file mode 100644 index 0000000..f6518ed --- /dev/null +++ b/yskj-module-contact/yskj-module-contact-biz/src/main/java/cn/yskj/linghe/module/contact/controller/admin/FileContactController.java @@ -0,0 +1,50 @@ +package cn.yskj.linghe.module.contact.controller.admin; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.lang.Assert; +import cn.yskj.linghe.framework.common.pojo.CommonResult; +import cn.yskj.linghe.module.infra.controller.admin.file.vo.file.FileUploadReqVO; +import cn.yskj.linghe.module.infra.service.file.FileService; +import com.alibaba.fastjson.JSON; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import static cn.yskj.linghe.framework.common.exception.enums.GlobalErrorCodeConstants.FORBIDDEN; +import static cn.yskj.linghe.framework.common.pojo.CommonResult.error; +import static cn.yskj.linghe.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放模块,开放文件上传给其他应用") +@RestController +@RequestMapping("/contact/file") +@Validated +public class FileContactController { + + @Resource + private FileService fileService; + + @Resource + private StringRedisTemplate stringRedisTemplate; + + @PostMapping("/upload") + @Operation(summary = "上传文件", description = "模式一:后端上传文件") + public CommonResult uploadFile(FileUploadReqVO uploadReqVO) throws Exception { + String key = stringRedisTemplate.opsForValue().get("backstage-contact"); + Assert.notNull(key); + // 原始储存的密码会出现 ""linghe2024"" 这种情况 + String keyNew = key.replaceAll("\"", ""); + if (!keyNew.equals("linghe2024")) { + return error(FORBIDDEN.getCode(), "方法未认证"); + } + MultipartFile file = uploadReqVO.getFile(); + String path = uploadReqVO.getPath(); + return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream()))); + } + +} diff --git a/yskj-module-infra/yskj-module-infra-biz/src/main/java/cn/yskj/linghe/module/infra/controller/app/file/AppFileController.java b/yskj-module-infra/yskj-module-infra-biz/src/main/java/cn/yskj/linghe/module/infra/controller/app/file/AppFileController.java index d76b04c..7e897fa 100644 --- a/yskj-module-infra/yskj-module-infra-biz/src/main/java/cn/yskj/linghe/module/infra/controller/app/file/AppFileController.java +++ b/yskj-module-infra/yskj-module-infra-biz/src/main/java/cn/yskj/linghe/module/infra/controller/app/file/AppFileController.java @@ -6,8 +6,10 @@ import cn.yskj.linghe.module.infra.controller.app.file.vo.AppFileUploadReqVO; import cn.yskj.linghe.module.infra.service.file.FileService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.security.PermitAll; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; +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; diff --git a/yskj-server/pom.xml b/yskj-server/pom.xml index 42d6be9..93691b2 100644 --- a/yskj-server/pom.xml +++ b/yskj-server/pom.xml @@ -128,6 +128,12 @@ ${revision} + + cn.yskj.dev + yskj-module-contact-biz + ${revision} + +