Происхождение 'null' было заблокировано политикой CORS: Ответ на предполётный запрос не проходит контроль доступа - PullRequest
0 голосов
/ 21 июня 2019

Я новичок в безопасности Spring и сейчас работаю над функциями входа в систему единого входа, чтобы реализовать его с нуля в уже работающем весеннем загрузочном приложении с внешним интерфейсом как Angular 4. Но я получаю эту ошибку снова и снова, пока я отправляю запрос из Angular к весне загрузиться.

Пожалуйста, получите мой файл CORSFilter.java, как указано ниже. Я понимаю, что мой запрос был заблокирован CORSFilter, примененным здесь. Но я не знаю, почему он блокирует мой запрос.

Пожалуйста, посмотрите на мой файл CORSFilter.

/**
 * Cross origin filter
 */
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CORSFilter implements Filter {

    /**
     * CORS filter for http-request and response
     */
    public CORSFilter() { }

    /**
     * Do Filter on every http-request.
     */
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;

        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "access_token, authorization, content-type");
        System.out.println("CORSFilter 2: " + request.getMethod());

        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
        } else {
            chain.doFilter(req, res);
        }
    }

    /**
     * Destroy method
     */
    @Override
    public void destroy() { }

    /**
     * Initialize CORS filter 
     */
    @Override
    public void init(FilterConfig arg0) throws ServletException { }
}

А это мой угловой код, из которого я сейчас звоню бэкэнду.

this.http.get( URL.GET_USER + '/' + email, this.commonRepository.getCommonRequestOptionsForJSON( URL.BEARER ) ).pipe(
                map( response => response.json() ),
                catchError( e => this.handleError( e ) ) );

У меня есть токен после входа в систему единого входа, но я хочу вызвать API локального компьютера для проверки истечения срока действия токена, я получаю его с облачного сервера.

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