diff --git a/chaos_api_common/pom.xml b/chaos_api_common/pom.xml
index 14197f9..7f56791 100644
--- a/chaos_api_common/pom.xml
+++ b/chaos_api_common/pom.xml
@@ -19,5 +19,15 @@
21
UTF-8
-
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ com.alibaba.fastjson2
+ fastjson2
+
+
\ No newline at end of file
diff --git a/chaos_api_common/src/main/java/cn/nopj/chaos_api/model/ApiResult.java b/chaos_api_common/src/main/java/cn/nopj/chaos_api/model/ApiResult.java
new file mode 100644
index 0000000..3d2eb54
--- /dev/null
+++ b/chaos_api_common/src/main/java/cn/nopj/chaos_api/model/ApiResult.java
@@ -0,0 +1,30 @@
+package cn.nopj.chaos_api.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ApiResult {
+
+ private int code;
+ private String msg;
+ private T data;
+
+
+
+ public static ApiResult success(T data) {
+ return new ApiResult<>(200, "success", data);
+ }
+ public static ApiResult success(String msg, T data) {
+ return new ApiResult<>(200, msg, data);
+ }
+ public static ApiResult failed(int code, String msg) {
+ return new ApiResult<>(code, msg, null);
+ }
+ public static ApiResult failed(String msg) {
+ return new ApiResult<>(500, msg, null);
+ }
+}
diff --git a/chaos_api_data/pom.xml b/chaos_api_data/pom.xml
index 8a5ca58..bd564aa 100644
--- a/chaos_api_data/pom.xml
+++ b/chaos_api_data/pom.xml
@@ -40,5 +40,15 @@
com.mysql
mysql-connector-j
+
+ com.alibaba
+ druid-spring-boot-starter
+
+
+
+ org.mariadb.jdbc
+ mariadb-java-client
+ 3.5.4
+
\ No newline at end of file
diff --git a/chaos_api_data/src/main/java/cn/nopj/chaos_api/config/MyBatisPlusConfig.java b/chaos_api_data/src/main/java/cn/nopj/chaos_api/config/MyBatisPlusConfig.java
new file mode 100644
index 0000000..e0bfb09
--- /dev/null
+++ b/chaos_api_data/src/main/java/cn/nopj/chaos_api/config/MyBatisPlusConfig.java
@@ -0,0 +1,9 @@
+package cn.nopj.chaos_api.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@MapperScan("cn.nopj.chaos_api.mapper")
+public class MyBatisPlusConfig {
+}
diff --git a/chaos_api_web/src/main/java/cn/nopj/chaos_api/config/sec/RestAuthenticationEntryPoint.java b/chaos_api_web/src/main/java/cn/nopj/chaos_api/config/sec/RestAuthenticationEntryPoint.java
new file mode 100644
index 0000000..1816734
--- /dev/null
+++ b/chaos_api_web/src/main/java/cn/nopj/chaos_api/config/sec/RestAuthenticationEntryPoint.java
@@ -0,0 +1,28 @@
+package cn.nopj.chaos_api.config.sec;
+
+import cn.nopj.chaos_api.model.ApiResult;
+import com.alibaba.fastjson2.JSONObject;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+
+@Component
+public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint {
+ @Override
+ public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("application/json");
+ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+
+ ApiResult