Jersey 기반 REST 서버에서 CORS 지원을 구현해야합니다. 이용 가능한 material과 유익한 tutorials 중 일부를 살펴 보았습니다. 나는 두 가지 방법 사람들이 사용하는 발견CORS Java 서버 측 구현
접근-1 :
간단하고 직접적인 방법 응답 CORS
헤더를 추가 한 HTTP
필터 (특정 뉴저지)
public class ResponseCorsFilter implements ContainerResponseFilter {
public ContainerResponse filter(ContainerRequest req, ContainerResponse contResp) {
ResponseBuilder resp = Response.fromResponse(contResp.getResponse());
resp.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
String reqHead = req.getHeaderValue("Access-Control-Request-Headers");
if(null != reqHead && !reqHead.equals(null)){
resp.header("Access-Control-Allow-Headers", reqHead);
}
contResp.setResponse(resp.build());
return contResp;
}
}
를 구현 접근법 -2 :
완전히 구현 CORS 즉, 프리 플라이트 (preflight) 요청 처리 및 모든 헤더 지원에 따른다. 그런 오픈 소스 자바 구현의 검사 된 소스 코드 cors-filter
제 질문은 어떤 접근 방식을 취해야합니까? Approach-1 대 Approach-2의 단점은 무엇일까요?
내 사용 사례는 모두 출처/방법이며 허용 될 수 있으며 Authorization
HTTP 헤더는 모두 REST
요청의 일부입니다. 기본 CORS 설정의 대부분이 내 유스 케이스로 충분하지만 서버 측에서 CORS 사양을 구현하지 않으면 문제가 생길 수 있습니다.
감사는, 예 각 요청은 임의의 처리를하기 전에 유효성을 검사 수신에 서버 인증 헤더에 저장된 공개 토큰 태그 할 예정이다. – harsh