您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

WebConfig.java 2.5KB

1 个月前
1 个月前
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.example.webapi.config;
  2. import com.example.webapi.interceptor.SignatureInterceptor;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.cors.CorsConfiguration;
  6. import org.springframework.web.cors.CorsConfigurationSource;
  7. import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
  8. import org.springframework.web.servlet.config.annotation.CorsRegistry;
  9. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  10. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  11. import java.util.Arrays;
  12. /**
  13. * Web配置类
  14. *
  15. * @author Your Name
  16. * @version 1.0.0
  17. */
  18. @Configuration
  19. public class WebConfig implements WebMvcConfigurer {
  20. private final SignatureInterceptor signatureInterceptor;
  21. public WebConfig(SignatureInterceptor signatureInterceptor) {
  22. this.signatureInterceptor = signatureInterceptor;
  23. }
  24. @Override
  25. public void addInterceptors(InterceptorRegistry registry) {
  26. registry.addInterceptor(signatureInterceptor)
  27. .addPathPatterns("/**")
  28. .excludePathPatterns(
  29. "/fuquanapi/swagger-ui.html",
  30. "/fuquanapi/swagger-ui/**",
  31. "/fuquanapi/v3/api-docs",
  32. "/fuquanapi/v3/api-docs/**",
  33. "/fuquanapi/webjars/**",
  34. "/fuquanapi/favicon.ico",
  35. "/fuquanapi/swagger-resources/**"
  36. );
  37. }
  38. @Override
  39. public void addCorsMappings(CorsRegistry registry) {
  40. registry.addMapping("/**")
  41. .allowedOriginPatterns("*")
  42. .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
  43. .allowedHeaders("*")
  44. .allowCredentials(true)
  45. .maxAge(3600);
  46. }
  47. /**
  48. * CORS配置
  49. *
  50. * @return CORS配置源
  51. */
  52. @Bean
  53. public CorsConfigurationSource corsConfigurationSource() {
  54. CorsConfiguration configuration = new CorsConfiguration();
  55. configuration.setAllowedOriginPatterns(Arrays.asList("*"));
  56. configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS"));
  57. configuration.setAllowedHeaders(Arrays.asList("*"));
  58. configuration.setAllowCredentials(true);
  59. configuration.setMaxAge(3600L);
  60. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
  61. source.registerCorsConfiguration("/**", configuration);
  62. return source;
  63. }
  64. }