From 39f55c08933e7f0292c325f41b0f55390a4acc69 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 25 七月 2022 09:24:05 +0800
Subject: [PATCH] 添加验证,更新前端,修复bug

---
 src/main/java/com/example/jz/controller/CauseController.java    |    3 ++-
 src/main/java/com/example/jz/auth/MyAccessDeniedHandler.java    |   18 ++++++++++++++++++
 src/main/java/com/example/jz/service/impl/CauseServiceImpl.java |    1 +
 src/main/java/com/example/jz/modle/dto/CauseDto.java            |    8 ++++++++
 pom.xml                                                         |    5 +++++
 5 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8b63f80..80be62e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
+        <!--validatedX-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
         <!-- 瀹炰綋绫� -->
         <dependency>
             <groupId>org.projectlombok</groupId>
diff --git a/src/main/java/com/example/jz/auth/MyAccessDeniedHandler.java b/src/main/java/com/example/jz/auth/MyAccessDeniedHandler.java
index 0ad7404..b690a95 100644
--- a/src/main/java/com/example/jz/auth/MyAccessDeniedHandler.java
+++ b/src/main/java/com/example/jz/auth/MyAccessDeniedHandler.java
@@ -3,8 +3,11 @@
 
 import cn.hutool.json.JSONUtil;
 import com.example.jz.modle.R;
+import org.springframework.context.annotation.Bean;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.security.web.firewall.HttpFirewall;
+import org.springframework.security.web.firewall.StrictHttpFirewall;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.ServletException;
@@ -12,6 +15,10 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.regex.Pattern;
+
+import static java.nio.charset.StandardCharsets.ISO_8859_1;
+import static java.nio.charset.StandardCharsets.UTF_8;
 
 /**
  * @author 瀹夌懢鐒�
@@ -21,6 +28,17 @@
 @Component
 public class MyAccessDeniedHandler implements AccessDeniedHandler {
 
+    @Bean
+    public HttpFirewall httpFirewall() {
+        StrictHttpFirewall firewall = new StrictHttpFirewall();
+        Pattern allowed = Pattern.compile("[\\p{IsAssigned}&&[^\\p{IsControl}]]*");
+        firewall.setAllowedHeaderValues((header) -> {
+            String parsed = new String(header.getBytes(ISO_8859_1), UTF_8);
+            return allowed.matcher(parsed).matches();
+        });
+        return firewall;
+    }
+
     @Override
     public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AccessDeniedException e) throws IOException, ServletException {
         R<String> r = new R<>();
diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java
index 55f3170..6b8201d 100644
--- a/src/main/java/com/example/jz/controller/CauseController.java
+++ b/src/main/java/com/example/jz/controller/CauseController.java
@@ -16,6 +16,7 @@
 import io.swagger.annotations.ApiResponse;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -52,7 +53,7 @@
     @ApiOperation(httpMethod = "POST", value = "妗堜欢鍙�-妗堜欢褰曞叆-娣诲姞妗堜欢")
     @PostMapping("/addCause")
     @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
-    public R addCause(@RequestBody CauseDto causeDto) {
+    public R addCause(@RequestBody @Validated CauseDto causeDto) {
         causeService.addCause(causeDto);
         return R.ok();
     }
diff --git a/src/main/java/com/example/jz/modle/dto/CauseDto.java b/src/main/java/com/example/jz/modle/dto/CauseDto.java
index b0b2ed7..0c95d1f 100644
--- a/src/main/java/com/example/jz/modle/dto/CauseDto.java
+++ b/src/main/java/com/example/jz/modle/dto/CauseDto.java
@@ -4,6 +4,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 
 @Data
@@ -11,25 +13,31 @@
 public class CauseDto {
     //妗堜欢缂栧彿
     @ApiModelProperty(dataType = "String", value = "妗堜欢缂栧彿")
+    @NotBlank(message = "妗堜欢缂栧彿涓嶈兘绌�")
     private String number;
 
     //妗堜欢鍚嶇О
     @ApiModelProperty(dataType = "String", value = "妗堜欢鍚嶇О")
+    @NotBlank(message = "妗堜欢鍚嶇О涓嶈兘绌�")
     private String name;
 
     //绗竴娆℃鍙戞椂闂�
     @ApiModelProperty(dataType = "Date", value = "绗竴娆℃鍙戞椂闂�")
+    @NotNull(message = "绗竴娆℃鍙戞椂闂翠笉鑳界┖")
     private Date firstTime;
 
     //璐熻矗浜篿d
     @ApiModelProperty(dataType = "Integer", value = "璐熻矗浜篿d")
+    @NotNull(message = "璐熻矗浜轰笉鑳戒负绌�")
     private Integer userId;
 
     //妗堜欢鎻忚堪
     @ApiModelProperty(dataType = "String", value = "妗堜欢鎻忚堪")
+    @NotBlank(message = "妗堜欢鎻忚堪涓嶈兘涓虹┖")
     private String description;
 
     //妗堜欢鐘舵��
     @ApiModelProperty(dataType = "Integer", value = "妗堜欢鐘舵��")
+    @NotNull(message = "妗堜欢鐘舵��")
     private Integer status;
 }
diff --git a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
index 40f186f..25e66ce 100644
--- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
@@ -149,6 +149,7 @@
     @Override
     public void deleteCause(Integer id) {
         causeDao.deleteById(id);
+        groupDao.delete(new QueryWrapper<Group>().eq("cause_id",id));
     }
 
     @Override

--
Gitblit v1.8.0