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(