diff --git a/pom.xml b/pom.xml
index 44fe8df..74d8d9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,31 @@
springdoc-openapi-starter-webmvc-ui
2.0.2
+
+
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.11.5
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ 0.11.5
+ runtime
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ 0.11.5
+ runtime
+
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.3.1
+
diff --git a/src/main/java/org/sadtech/example/swagger/config/OpenApiConfig.java b/src/main/java/org/sadtech/example/swagger/config/OpenApiConfig.java
index c092668..43ab813 100644
--- a/src/main/java/org/sadtech/example/swagger/config/OpenApiConfig.java
+++ b/src/main/java/org/sadtech/example/swagger/config/OpenApiConfig.java
@@ -1,8 +1,10 @@
package org.sadtech.example.swagger.config;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
import io.swagger.v3.oas.annotations.info.Contact;
import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.security.SecurityScheme;
/**
* @author upagge 30.12.2020
@@ -18,6 +20,12 @@ import io.swagger.v3.oas.annotations.info.Info;
)
)
)
+@SecurityScheme(
+ name = "JWT",
+ type = SecuritySchemeType.HTTP,
+ bearerFormat = "JWT",
+ scheme = "bearer"
+)
public class OpenApiConfig {
}
diff --git a/src/main/java/org/sadtech/example/swagger/controller/PointController.java b/src/main/java/org/sadtech/example/swagger/controller/PointController.java
index 2a30076..3c1ba68 100644
--- a/src/main/java/org/sadtech/example/swagger/controller/PointController.java
+++ b/src/main/java/org/sadtech/example/swagger/controller/PointController.java
@@ -2,7 +2,9 @@ package org.sadtech.example.swagger.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import org.sadtech.example.swagger.dto.TypeOperation;
@@ -12,7 +14,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@@ -33,11 +35,13 @@ public class PointController {
}
@PostMapping("{key}")
+ @SecurityRequirement(name = "JWT")
@Operation(summary = "Управление баллами", description = "Позволяет удалить или добавить баллы пользователю")
public HttpStatus changePoints(
- @PathVariable @NotBlank @Parameter(description = "Идентификатор пользователя") String key,
- @RequestPart("point") @Min(0) @Parameter(description = "Количество баллов", required = true) Long point,
- @RequestPart("type") @Parameter(description = "Тип операции", required = true) TypeOperation type
+ @PathVariable @NotBlank @Parameter(description = "Идентификатор пользователя", example = "key1") String key,
+ @RequestParam("point") @Min(0) @Parameter(description = "Количество баллов", required = true, example = "10") Long point,
+ @RequestParam("type") @Parameter(description = "Тип операции", required = true) TypeOperation type,
+ HttpServletRequest request
) {
final UserDto userDto = repository.get(key);
userDto.setPoints(