Весной встречается проблема с сериализатором / десериализатором WebFlux.
Мне нужно предоставить сериализатору значение «часовой пояс», которое я могу получить, например, от зарегистрированного пользователя или от текущих заголовков запросов.Как я могу ввести эти значения в сериализатор?
Кстати, может, мне не стоит использовать объектный картограф с реактором?(Похоже, у него нет возможности работать с моно и потоком)
public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
ReactiveSecurityContextHolder.getContext()
.subscribe(c -> {
// some magic will be here
gen.writeString(value.format(FORMATTER));
});
}
}
Но
1. Здесь контекст безопасности пуст (но он не пуст в начале контроллера)
2. Даже если позвонит абонент, я получу исключение