Fix download allegati

This commit is contained in:
2024-06-06 10:51:55 +02:00
parent c9f9c63ef2
commit abd843ad7a

View File

@@ -1,22 +1,20 @@
package it.integry.ems.configuration; package it.integry.ems.configuration;
import it.integry.ems.adapter.JsonDateAdapterDeserializer;
import it.integry.ems.adapter.JsonDateAdapterSerializer;
import it.integry.ems.json.ResponseJSONObjectMapper; import it.integry.ems.json.ResponseJSONObjectMapper;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List; import java.util.List;
@Configuration @Configuration
@EnableWebMvc
public class JsonConfig implements WebMvcConfigurer { public class JsonConfig implements WebMvcConfigurer {
@Bean @Bean
@@ -28,24 +26,19 @@ public class JsonConfig implements WebMvcConfigurer {
@Override @Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorParameter(false) configurer.defaultContentType(MediaType.APPLICATION_JSON);
.ignoreAcceptHeader(true)
.defaultContentType(new MediaType(MediaType.APPLICATION_JSON, StandardCharsets.UTF_8))
.mediaType("json", new MediaType(MediaType.APPLICATION_JSON, StandardCharsets.UTF_8));
} }
@Override @Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); final MappingJackson2HttpMessageConverter httpMessageConverter = converters.stream()
.filter(x -> x instanceof MappingJackson2HttpMessageConverter)
.map(x -> (MappingJackson2HttpMessageConverter) x)
.findFirst()
.get();
builder.deserializerByType(Date.class, new JsonDateAdapterDeserializer()); httpMessageConverter.setDefaultCharset(StandardCharsets.UTF_8);
builder.serializerByType(Date.class, new JsonDateAdapterSerializer()); httpMessageConverter.setObjectMapper(jacksonResponseObjectMapper());
final MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(builder.build());
mappingJackson2HttpMessageConverter.setDefaultCharset(StandardCharsets.UTF_8);
mappingJackson2HttpMessageConverter.setObjectMapper(jacksonResponseObjectMapper());
converters.add(mappingJackson2HttpMessageConverter);
} }
} }