diff --git a/pom.xml b/pom.xml
index 7292095..32a259f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,6 +108,12 @@
spring-boot-starter-test
test
+
+
+ cn.apiclub.tool
+ simplecaptcha
+ 1.2.2
+
diff --git a/src/main/java/com/example/spring_boot_project/Security/CaptchaUtil.java b/src/main/java/com/example/spring_boot_project/Security/CaptchaUtil.java
new file mode 100644
index 0000000..13f2eb6
--- /dev/null
+++ b/src/main/java/com/example/spring_boot_project/Security/CaptchaUtil.java
@@ -0,0 +1,28 @@
+package com.example.spring_boot_project.Security;
+
+import cn.apiclub.captcha.Captcha;
+
+import javax.imageio.ImageIO;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Base64;
+
+public class CaptchaUtil {
+ public static Captcha createCaptcha(int width, int height){
+ return new Captcha.Builder(width, height)
+ .addText()
+ .addBackground()
+ .addNoise()
+ .build();
+ }
+
+ public static String encodeCaptcha(Captcha c){
+ try(ByteArrayOutputStream o = new ByteArrayOutputStream()){
+ ImageIO.write(c.getImage(), "jpg", o);
+ return Base64.getEncoder().encodeToString(o.toByteArray());
+ } catch (IOException e){
+ throw new RuntimeException("error encoding Captcha", e);
+ }
+ }
+
+}
diff --git a/src/main/java/com/example/spring_boot_project/controller/AuthController.java b/src/main/java/com/example/spring_boot_project/controller/AuthController.java
index 9aff4d0..7884be3 100644
--- a/src/main/java/com/example/spring_boot_project/controller/AuthController.java
+++ b/src/main/java/com/example/spring_boot_project/controller/AuthController.java
@@ -28,14 +28,17 @@ public AuthController(UserService userService, BCryptPasswordEncoder passwordEnc
@PostMapping("/register")
public ResponseEntity> registerUser(@RequestBody RegisterRequest request) {
Optional existingUser = userService.findByUsername(request.getUsername());
+
if (existingUser.isPresent()) {
return ResponseEntity.badRequest().body("Username already exists.");
}
+
User user = new User();
user.setUsername(request.getUsername());
user.setPassword(passwordEncoder.encode(request.getPassword()));
user.setRole("USER");
userService.save(user);
+
return ResponseEntity.ok().body("User registered successfully");
}
@@ -53,6 +56,7 @@ public ResponseEntity> loginUser(@RequestBody Map request) {
passwordEncoder.matches(rawPassword, userOptional.get().getPassword())) {
String token = jwtUtil.generateToken(userOptional.get().getUsername());
+
return ResponseEntity.ok(Map.of("token", token));
}
diff --git a/src/main/java/com/example/spring_boot_project/service/UserServiceImpl.java b/src/main/java/com/example/spring_boot_project/service/UserServiceImpl.java
deleted file mode 100644
index e69de29..0000000