001package run.iget.framework.common.config;
002
003import java.util.List;
004
005import org.springframework.context.annotation.Bean;
006import org.springframework.context.annotation.Configuration;
007import org.springframework.http.converter.ByteArrayHttpMessageConverter;
008import org.springframework.http.converter.HttpMessageConverter;
009import org.springframework.http.converter.ResourceHttpMessageConverter;
010import org.springframework.http.converter.StringHttpMessageConverter;
011import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
012import org.springframework.web.cors.CorsConfiguration;
013import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
014import org.springframework.web.filter.CorsFilter;
015import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
016import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
017
018/**
019 * 代码千万行,注释第一行,注释不规范,迭代两行泪
020 * ---------------类描述-----------------
021 * Web MVC配置
022 * ---------------类描述-----------------
023 *
024 * @author 大周
025 * @date 2023/5/26 21:44
026 */
027@Configuration
028public class WebConfig implements WebMvcConfigurer {
029
030    @Override
031    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
032        converters.add(new ByteArrayHttpMessageConverter());
033        converters.add(new StringHttpMessageConverter());
034        converters.add(new ResourceHttpMessageConverter());
035        converters.add(new AllEncompassingFormHttpMessageConverter());
036    }
037
038    @Override
039    public void addInterceptors(InterceptorRegistry registry) {
040        //        registry.addWebRequestInterceptor(new DesensitizationWebRequestInterceptor());
041    }
042
043    /**
044     * 配置跨域支持
045     * @return
046     */
047    @Bean
048    public CorsFilter corsFilter() {
049        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
050        final CorsConfiguration corsConfiguration = new CorsConfiguration();
051        corsConfiguration.setAllowCredentials(true);
052        corsConfiguration.addAllowedHeader("*");
053        corsConfiguration.addAllowedOriginPattern("*");
054        corsConfiguration.addAllowedMethod("*");
055        source.registerCorsConfiguration("/**", corsConfiguration);
056        return new CorsFilter(source);
057    }
058}