package com.ycl.config;
|
|
import com.ycl.utils.JwtTokenUtil;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.core.Ordered;
|
import org.springframework.core.annotation.Order;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.web.cors.CorsConfiguration;
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
import org.springframework.web.filter.CorsFilter;
|
|
|
@Configuration
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
public class WebConfiguration {
|
// @Autowired
|
// private ProxyInterceptor proxyInterceptor;
|
|
// @Bean
|
// public WebMvcConfigurer webMvcConfigurer() {
|
// return new WebMvcConfigurer() {
|
// /**
|
// * 添加拦截器
|
// * @param registry
|
// */
|
// @Override
|
// public void addInterceptors(InterceptorRegistry registry) {
|
// registry.addInterceptor(proxyInterceptor)
|
// .addPathPatterns("/**");
|
// }
|
// @Override
|
// public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
|
// configurer.favorPathExtension(false);
|
// }
|
// };
|
|
// }
|
|
@Bean
|
public PasswordEncoder passwordEncoder() {
|
return new BCryptPasswordEncoder();
|
}
|
|
@Bean
|
public IgnoreUrlsConfig ignoreUrlsConfig() {
|
return new IgnoreUrlsConfig();
|
}
|
|
@Bean
|
public JwtTokenUtil jwtTokenUtil() {
|
return new JwtTokenUtil();
|
}
|
|
@Bean
|
public CorsFilter corsFilter() {
|
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
final CorsConfiguration config = new CorsConfiguration();
|
// 允许cookies跨域
|
config.setAllowCredentials(true);
|
// #允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Origin,该用法在SpringBoot 2.7.0中已不再支持
|
//config.addAllowedOrigin("*");
|
// #允许访问的头信息,*表示全部
|
config.addAllowedHeader("*");
|
// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
|
config.setMaxAge(18000L);
|
// 允许提交请求的方法,*表示全部允许
|
config.addAllowedMethod("OPTIONS");
|
config.addAllowedMethod("HEAD");
|
// 允许Get的请求方法
|
config.addAllowedMethod("GET");
|
config.addAllowedMethod("PUT");
|
config.addAllowedMethod("POST");
|
config.addAllowedMethod("DELETE");
|
config.addAllowedMethod("PATCH");
|
source.registerCorsConfiguration("/**", config);
|
return new CorsFilter(source);
|
}
|
|
}
|