WebConfig.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.zhaoliangsz.grainsearch.basic.config;
  2. import com.zhaoliangsz.grainsearch.basic.interceptor.LoginInterceptor;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.http.converter.HttpMessageConverter;
  8. import org.springframework.http.converter.StringHttpMessageConverter;
  9. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  10. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  11. import javax.annotation.Resource;
  12. import javax.servlet.*;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import java.io.IOException;
  16. import java.util.List;
  17. /**
  18. * @author : zyw
  19. * @date : 2023/8/17 16:56
  20. * @description:
  21. */
  22. @Configuration
  23. public class WebConfig {
  24. @Value("${allowed-origins:*}")
  25. private String allowedOrigins;
  26. @Value("${allowed-headers:Access-Control-Allow-Headers,Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Authorization,Access-Control-Request-Headers}")
  27. private String allowedHeaders;
  28. /**
  29. * 测试用,跨域访问
  30. */
  31. @Bean
  32. public Filter corsFilter() {
  33. return new Filter() {
  34. @Override
  35. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
  36. throws IOException, ServletException {
  37. HttpServletRequest req = ((HttpServletRequest) request);
  38. HttpServletResponse res = (HttpServletResponse) response;
  39. if ("*".equals(allowedOrigins) || allowedOrigins.contains(req.getHeader("Origin"))) {
  40. res.setHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));
  41. // res.setHeader("Access-Control-Allow-Origin", allowedOrigins);
  42. }
  43. res.setHeader("Access-Control-Allow-Credentials", "true");
  44. res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS");
  45. res.setHeader("Access-Control-Allow-Headers", allowedHeaders);
  46. if ("OPTIONS".equals(req.getMethod())) {
  47. response.getWriter().println("ok");
  48. return;
  49. }
  50. chain.doFilter(request, response);
  51. }
  52. @Override
  53. public void init(FilterConfig filterConfig) throws ServletException {
  54. // ignore
  55. }
  56. @Override
  57. public void destroy() {
  58. // ignore
  59. }
  60. };
  61. }
  62. }