/
setwind
/
olympiad
Обзор
Документация
Войти
/
setwind
/
olympiad
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/cfuv/olympus/controller/AuthController.java
54 строки
2 KB
InfinityExistence
renames and fixes
16 апр 2025, 11:57
16 апр 2025, 11:57
d35397d
Код
Авторство
О чём код?
package com.cfuv.olympus.controller; import com.cfuv.olympus.entity.dto.auth.LoginRequest; import com.cfuv.olympus.entity.dto.auth.UserInfoResponse; import com.cfuv.olympus.service.AuthService; import com.cfuv.olympus.web.security.UserSession; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springdoc.api.ErrorMessage; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @Tag(name = "Auth controller", description = "Authenticate management") @RestController @RequestMapping("/api/v1/auth") @RequiredArgsConstructor @Validated public class AuthController { private final AuthService authService; @Operation(summary = "Check authenticate", description = "Check and return an authenticated user") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Successfully retrieved"), @ApiResponse(responseCode = "403", description = "Access denied", content = @Content(schema = @Schema(implementation = ErrorMessage.class))) }) @GetMapping("/checkAuth") public UserInfoResponse checkAuth(@AuthenticationPrincipal UserSession user) { return authService.checkAuth(user); } @Operation(summary = "Login user", description = "Return an authenticated user") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Successfully retrieved"), @ApiResponse(responseCode = "403", description = "Access denied", content = @Content(schema = @Schema(implementation = ErrorMessage.class))) }) @PostMapping("/login") public UserInfoResponse login(@Validated @RequestBody final LoginRequest loginRequest, HttpServletRequest request, HttpServletResponse response) { return authService.login(loginRequest, request, response); } }