【问题标题】:Handle CORS in java server side在 Java 服务器端处理 CORS
【发布时间】:2019-07-20 07:26:04
【问题描述】:

我们有一些需要启用 CORS 的受保护资源。这些资源可以通过 get 和 post 获取/创建。

为了处理 CORS,我们将预检选项请求的处理放在服务器端。我们有一个特殊的标头要从客户端发送,这使它成为根据https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS 的预检请求

在接收到带有源头的选项请求时,我们允许使用“Access-Control-Allow-Origin”的源并设置“Access-Control-Allow-Credentials”、“true”。

我的问题是我需要做些什么,或者浏览器不发送预检选项请求的情况?

最好的问候,

苏拉夫

【问题讨论】:

    标签: java servlets cors


    【解决方案1】:

    来源:https://howtodoinjava.com/servlets/java-cors-filter-example/

    public class CORSFilter implements Filter {
    
        public CORSFilter() {
        }
    
        public void destroy() {
        }
    
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
                throws IOException, ServletException {
    
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            System.out.println("CORSFilter HTTP Request: " + request.getMethod());
    
            // Authorize (allow) all domains to consume the content
            ((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Origin", "*");
            ((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST");
    
            HttpServletResponse resp = (HttpServletResponse) servletResponse;
    
            // For HTTP OPTIONS verb/method reply with ACCEPTED status code -- per CORS handshake
            if (request.getMethod().equals("OPTIONS")) {
                resp.setStatus(HttpServletResponse.SC_ACCEPTED);
                return;
            }
    
            // pass the request along the filter chain
            chain.doFilter(request, servletResponse);
        }
    
        public void init(FilterConfig fConfig) throws ServletException {
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多