Обрабатывать CORS на стороне сервера Java - PullRequest
0 голосов
/ 26 февраля 2019

У нас есть некоторые защищенные ресурсы, которые нам нужно включить CORS.Эти ресурсы могут быть получены / созданы с помощью get и post.

Чтобы обработать CORS, мы поместили обработку запроса предварительно выданных опций на стороне сервера.У нас есть специальный заголовок для отправки от клиентов, который позволяет ему быть предварительно выданным запросом в соответствии с https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

. При получении запроса опций с заголовком источника мы разрешаем источник, используя «Access-Control-Allow-Происхождение "и сделать Access-Control-Allow-Credentials", "true".

У меня вопрос, есть ли что-то еще, что мне нужно сделать, или могут быть случаи, когда браузер не отправляет запрос предварительно выданных опций?

С наилучшими пожеланиями,

Саурав

1 Ответ

0 голосов
/ 26 февраля 2019

Источник: 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 {
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...