From da10b9daa45787f44a8754b3bbf89d4f7af9c93f Mon Sep 17 00:00:00 2001 From: fanxb Date: Thu, 11 Jul 2019 16:12:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix:=20[=E5=90=8E=E5=8F=B0]:?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B7=A8=E5=9F=9F=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bookmark/common/filter/LoginFilter.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java index de84730..c953e9a 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.annotation.Order; +import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.util.AntPathMatcher; @@ -65,11 +66,26 @@ public class LoginFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) servletRequest; + HttpServletResponse response = (HttpServletResponse) servletResponse; + // 指定允许其他域名访问 + response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Max-Age", "0"); + // 响应类型 + response.setHeader("Access-Control-Allow-Methods", "POST,GET,DELETE,OPTIONS,DELETE"); + // 响应头设置 + response.setHeader("Access-Control-Allow-Headers", "Content-Type,jwt-token"); + + // 如果是option请求直接返回200 + String requestMethod = request.getMethod(); + if (requestMethod.equalsIgnoreCase(HttpMethod.OPTIONS.name())) { + response.setStatus(HttpStatus.OK.value()); + return; + } + UserContextHolder.remove(); List publicUrl = this.getPublicUrl(); - HttpServletRequest request = (HttpServletRequest) servletRequest; String requestUrl = request.getRequestURI().replace(urlPrefix, ""); - String requestMethod = request.getMethod(); for (Url url : publicUrl) { if (url.getMethod().equalsIgnoreCase(requestMethod) && matcher.match(url.getUrl(), requestUrl)) { filterChain.doFilter(servletRequest, servletResponse); @@ -79,7 +95,6 @@ public class LoginFilter implements Filter { if (this.checkJwt(request.getHeader(Constant.JWT_KEY))) { filterChain.doFilter(servletRequest, servletResponse); } else { - HttpServletResponse response = (HttpServletResponse) servletResponse; response.setStatus(HttpStatus.OK.value()); response.setContentType("application/json"); response.setCharacterEncoding("utf-8");