diff --git a/sk-module-data/sk-module-data-api/pom.xml b/sk-module-data/sk-module-data-api/pom.xml index 034c960e6..27c01706f 100644 --- a/sk-module-data/sk-module-data-api/pom.xml +++ b/sk-module-data/sk-module-data-api/pom.xml @@ -4,7 +4,7 @@ cn.iocoder.cloud sk-module-data - 2.4.1-jdk8-SNAPSHOT + ${revision} 4.0.0 sk-module-data-api diff --git a/sk-module-data/sk-module-data-biz/pom.xml b/sk-module-data/sk-module-data-biz/pom.xml index f6febd2bc..ace35e21d 100644 --- a/sk-module-data/sk-module-data-biz/pom.xml +++ b/sk-module-data/sk-module-data-biz/pom.xml @@ -181,7 +181,7 @@ true lib/ false - cn.iocoder.yudao.module.system.SystemServerApplication + org.sk.module.data.SkModuleDataBizApplication ./resources/ @@ -217,7 +217,7 @@ - + diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/config/SecurityConfiguration.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/config/SecurityConfiguration.java index 9148980ce..5d5130fbe 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/config/SecurityConfiguration.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/config/SecurityConfiguration.java @@ -32,6 +32,7 @@ public class SecurityConfiguration { .requestMatchers("/actuator/**").permitAll(); // RPC 服务的安全配置 registry.requestMatchers(ApiConstants.PREFIX + "/**").permitAll(); + registry.requestMatchers( "/finance/**").permitAll(); } }; diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java index 621d1d22e..9e4b25a85 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java @@ -4,6 +4,8 @@ package org.sk.module.data.controller.finance; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.sk.module.data.dal.bo.finance.FinanceBO; import org.sk.module.data.dal.param.finance.FinanceParam; import org.sk.module.data.dal.param.finance.IncomeAndTaxParam; @@ -11,15 +13,12 @@ import org.sk.module.data.dal.vo.FinanceVO; import org.sk.module.data.service.finance.FinanceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.security.PermitAll; import javax.validation.Valid; import java.util.List; - +@Tag(name = "对外接口 - 财务数据") @RestController @RequestMapping("/finance") public class FinanceController { @@ -34,6 +33,7 @@ public class FinanceController { return "hello wzc"; } + @Operation(summary = "获取财务信息") @GetMapping("/getFinanceInfo") public CommonResult getFinanceInfo(@Valid @RequestBody FinanceParam financeParam) { @@ -48,8 +48,8 @@ public class FinanceController { * @param param * @return */ -// @PermitAll - @GetMapping("/getIncomeAndTax") + @Operation(summary = "根据拼接的统一社会信用编码以及年份获取数据") + @PostMapping("/getIncomeAndTax") public CommonResult> getIncomeAndTax(@Valid @RequestBody IncomeAndTaxParam param) { return CommonResult.success(financeService.getIncomeAndTax(param)); } diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/mapper/auth/AuthClientMapper.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/mapper/auth/AuthClientMapper.java new file mode 100644 index 000000000..a8acb095f --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/mapper/auth/AuthClientMapper.java @@ -0,0 +1,19 @@ +package org.sk.module.data.dal.mapper.auth; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.sk.module.data.dal.bo.finance.FinanceBO; + +import java.util.List; + +/** + * @author haoran + */ +@Mapper +@DS("master") +public interface AuthClientMapper { + + int selectClientByIdAndSecret(@Param("id")String id, @Param("secret")String secret); + +} diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/filter/AuthFilter.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/filter/AuthFilter.java new file mode 100644 index 000000000..f56e9f220 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/filter/AuthFilter.java @@ -0,0 +1,59 @@ +package org.sk.module.data.filter; + +import org.sk.module.data.dal.mapper.auth.AuthClientMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerExecutionChain; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.lang.reflect.Method; + +@Component +public class AuthFilter implements Filter { + + @Autowired + @Qualifier("requestMappingHandlerMapping") // 或 "controllerEndpointHandlerMapping" + private RequestMappingHandlerMapping handlerMapping; + + @Autowired + private AuthClientMapper authClientMapper; + + public AuthFilter( RequestMappingHandlerMapping requestMappingHandlerMapping) { + this.handlerMapping = requestMappingHandlerMapping; + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + HttpServletRequest httpRequest = (HttpServletRequest) request; + HttpServletResponse httpResponse = (HttpServletResponse) response; + + // 获取请求头中的密钥和 ID + String id = httpRequest.getHeader("X-Id"); + String secretKey = httpRequest.getHeader("X-Secret-Key"); + + // 校验 ID 和密钥是否匹配 + if (isValid(id, secretKey)) { + chain.doFilter(request, response); + } else { + httpResponse.setStatus(HttpServletResponse.SC_FORBIDDEN); // 403 Forbidden + httpResponse.setContentType("application/json"); + httpResponse.getWriter().write("{\"error\": \"Invalid ID or Secret Key\"}"); + } + } + + + /** + * 校验 ID 和密钥是否匹配 + */ + private boolean isValid(String id, String secretKey) { + // 示例逻辑:从数据库中查询 ID 和密钥是否匹配 + return authClientMapper.selectClientByIdAndSecret(id,secretKey) == 1; + } +} diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java index 08ffff3e4..d5da80f8c 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java @@ -16,7 +16,7 @@ import java.util.Arrays; import java.util.List; @Service -@DS("master") +@DS("slave1") public class FinanceServiceImpl implements FinanceService { diff --git a/sk-module-data/sk-module-data-biz/src/main/resources/mappers/auth/AuthClientMapper.xml b/sk-module-data/sk-module-data-biz/src/main/resources/mappers/auth/AuthClientMapper.xml new file mode 100644 index 000000000..8fe3186e3 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/resources/mappers/auth/AuthClientMapper.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file