Я новичок в безопасности 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 локального компьютера для проверки истечения срока действия токена, я получаю его с облачного сервера.