From 80d13257535377808880f9ddb1e8574b91235f9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?=
<8605635+zhang3064194730@user.noreply.gitee.com>
Date: Sat, 8 Feb 2025 13:34:01 +0800
Subject: [PATCH] =?UTF-8?q?=E5=95=86=E6=88=B7=E7=99=BB=E5=BD=95=E7=9B=B8?=
=?UTF-8?q?=E5=85=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/AuthorizationController.java | 19 ++++++++--
.../czg/controller/ShopInfoController.java | 12 +++++++
.../java/com/czg/config/SaTokenConfigure.java | 8 ++++-
cash-service/account-service/pom.xml | 8 +++++
.../main/java/com/czg/dto/SysLoginDTO.java | 16 +++++++++
.../com/czg/service/AuthorizationService.java | 11 ++++++
.../impl/AuthorizationServiceImpl.java | 35 +++++++++++++++++++
pom.xml | 4 +++
8 files changed, 109 insertions(+), 4 deletions(-)
create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/ShopInfoController.java
create mode 100644 cash-service/account-service/src/main/java/com/czg/dto/SysLoginDTO.java
create mode 100644 cash-service/account-service/src/main/java/com/czg/service/AuthorizationService.java
create mode 100644 cash-service/account-service/src/main/java/com/czg/service/impl/AuthorizationServiceImpl.java
diff --git a/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java b/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java
index 8fafd845..e8a15718 100644
--- a/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java
+++ b/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java
@@ -1,6 +1,10 @@
package com.czg.controller;
+import com.czg.dto.SysLoginDTO;
+import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
+import com.czg.service.AuthorizationService;
+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;
@@ -12,10 +16,19 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("auth")
public class AuthorizationController {
+ private final AuthorizationService authorizationService;
+
+ public AuthorizationController(AuthorizationService authorizationService) {
+ this.authorizationService = authorizationService;
+ }
+
+ @GetMapping("captcha")
+ public CzgResult> captcha() {
+ return CzgResult.success(authorizationService.getCaptcha());
+ }
@PostMapping("login")
- public void login() {
- StpKit.USER.checkLogin();
- System.out.println(1);
+ public CzgResult> login(@Validated SysLoginDTO loginDTO) {
+ return CzgResult.success(authorizationService.login(loginDTO));
}
}
diff --git a/cash-api/account-server/src/main/java/com/czg/controller/ShopInfoController.java b/cash-api/account-server/src/main/java/com/czg/controller/ShopInfoController.java
new file mode 100644
index 00000000..7e770cc3
--- /dev/null
+++ b/cash-api/account-server/src/main/java/com/czg/controller/ShopInfoController.java
@@ -0,0 +1,12 @@
+package com.czg.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Administrator
+ */
+@RestController
+@RequestMapping("shopInfo")
+public class ShopInfoController {
+}
diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java
index 8443e6be..9f61fb97 100644
--- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java
+++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java
@@ -3,11 +3,13 @@ package com.czg.config;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.application.ApplicationInfo;
import cn.dev33.satoken.config.SaTokenConfig;
+import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.interceptor.SaInterceptor;
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.strategy.SaAnnotationStrategy;
import com.czg.sa.StpKit;
import jakarta.annotation.PostConstruct;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@@ -17,6 +19,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
* @author Administrator
*/
@Configuration
+@Slf4j
public class SaTokenConfigure implements WebMvcConfigurer {
@PostConstruct
@@ -47,10 +50,13 @@ public class SaTokenConfigure implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
// 注册路由拦截器,自定义认证规则
registry.addInterceptor(new SaInterceptor(handler -> {
+ log.info(SaHolder.getRequest().getRequestPath());
// 重置根路径,防止satoken切割根路径导致匹配不到路径
ApplicationInfo.routePrefix = "";
- SaRouter.match("/admin/**").check(r -> StpKit.ADMIN.checkLogin());
+ SaRouter.match("/admin/**")
+ .notMatch("/admin/auth/**")
+ .check(r -> StpKit.ADMIN.checkLogin());
SaRouter.match("/user/**").check(r -> StpKit.USER.checkLogin());
})).addPathPatterns("/**");
diff --git a/cash-service/account-service/pom.xml b/cash-service/account-service/pom.xml
index ed5318cc..2d8fcab5 100644
--- a/cash-service/account-service/pom.xml
+++ b/cash-service/account-service/pom.xml
@@ -18,7 +18,15 @@
+
+ com.github.whvcse
+ easy-captcha
+
+
+ com.czg
+ cash-common-tools
+
diff --git a/cash-service/account-service/src/main/java/com/czg/dto/SysLoginDTO.java b/cash-service/account-service/src/main/java/com/czg/dto/SysLoginDTO.java
new file mode 100644
index 00000000..e7c86470
--- /dev/null
+++ b/cash-service/account-service/src/main/java/com/czg/dto/SysLoginDTO.java
@@ -0,0 +1,16 @@
+package com.czg.dto;
+
+import jakarta.validation.constraints.NotEmpty;
+
+public record SysLoginDTO(
+ @NotEmpty(message = "用户名不为空")
+ String username,
+ @NotEmpty(message = "密码不为空")
+ String password,
+ @NotEmpty(message = "验证码不为空")
+ String code,
+ @NotEmpty(message = "uid不为空")
+ String uuid,
+ String staffName
+) {
+}
diff --git a/cash-service/account-service/src/main/java/com/czg/service/AuthorizationService.java b/cash-service/account-service/src/main/java/com/czg/service/AuthorizationService.java
new file mode 100644
index 00000000..b88223e4
--- /dev/null
+++ b/cash-service/account-service/src/main/java/com/czg/service/AuthorizationService.java
@@ -0,0 +1,11 @@
+package com.czg.service;
+
+
+/**
+ * @author Administrator
+ */
+public interface AuthorizationService {
+ Object getCaptcha();
+
+ Object login(com.czg.dto.SysLoginDTO loginDTO);
+}
diff --git a/cash-service/account-service/src/main/java/com/czg/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/impl/AuthorizationServiceImpl.java
new file mode 100644
index 00000000..22eee7dc
--- /dev/null
+++ b/cash-service/account-service/src/main/java/com/czg/service/impl/AuthorizationServiceImpl.java
@@ -0,0 +1,35 @@
+package com.czg.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.czg.dto.SysLoginDTO;
+import com.czg.service.AuthorizationService;
+import com.wf.captcha.SpecCaptcha;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @author Administrator
+ */
+@Service
+public class AuthorizationServiceImpl implements AuthorizationService {
+ @Override
+ public Object getCaptcha() {
+ // 生成验证码(130x48,4位字符)
+ SpecCaptcha captcha = new SpecCaptcha(130, 48, 4);
+
+ // 获取验证码文本
+ String code = captcha.text();
+
+ // 生成唯一的验证码 ID
+ String captchaKey = IdUtil.randomUUID();
+
+ // 返回 Base64 格式验证码
+ return Map.of("code", captcha.toBase64(), "uuid", captchaKey);
+ }
+
+ @Override
+ public Object login(SysLoginDTO loginDTO) {
+ return null;
+ }
+}
diff --git a/pom.xml b/pom.xml
index 9d142fba..dc28a3b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,10 @@
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
net.minidev
json-smart