Могу ли я как -то описать атрибуты схемы, подобно тому, как я могу описать параметры запроса? В моем случае я хочу сообщить клиентам, что идентификатор означает либо имя пользователя, электронную почту или телефон. Очевидно, я не хочу переименовать атрибут в UserNameEmailorPhone .
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class LoginUserRequestDto {
@NotBlank(message = "Must be present (a user name, email, or phone)")
private String identifier;
@NotBlank(message = "Must be present")
private String password;
}
< /code>
@Configuration
public class RouterConfig {
private final TokenHandler tokenHandler;
public RouterConfig(TokenHandler tokenHandler) {
this.tokenHandler = tokenHandler;
}
@Bean
@RouterOperation(beanClass = TokenHandler.class, beanMethod = "logIn")
public RouterFunction logIn() {
return RouterFunctions.route()
.POST("/login", tokenHandler::logIn)
.build();
}
}
< /code>
// TokenHandler implementation
@Override
@Operation(requestBody = @RequestBody(content = @Content(schema = @Schema(implementation = LoginUserRequestDto.class)), required = true))
@ApiResponse(responseCode = "200", content = @Content(mediaType = "text/plain"))
public Mono logIn(ServerRequest request) {
return request.bodyToMono(LoginUserRequestDto.class)
.doOnNext(this::validate)
.map(UserDtoAuthenticationToken::from)
.flatMap(authenticationManager::authenticate)
.ofType(UserAuthenticationToken.class)
.map(UserAuthenticationToken::getPrincipal)
.ofType(User.class)
.map(tokenService::generateTokenFor)
.transform(jwt -> ServerResponse.status(HttpStatus.OK).body(jwt, String.class));
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... scriptions