2011-07-04 2 views
4

Apache Jersey를 사용하여 RESTful 웹 서비스를 구축 중입니다. 이제 요청에 대한 인증이 필요합니다. 일반적인 REST 접근 방식을 사용하면 HTTP 인증을 통해 인증을 수행해야합니다. 그러나 게시물 here에는 쿠키를 사용하는 방법이 더 나은 방법이라고 언급되어 있습니다. 나는 토론에 몇 가지 유효한 점이 있다고 생각한다. (어떻게) 쿠키로 저지 인증을 사용할 수 있습니까? 그것을위한 또 다른 틀이 필요합니까?HTTP 인증을 사용하지 않고 Apache Jersey에서 인증 하시겠습니까?

답변

6

Jersey는 웹 애플리케이션의 web.xml에 선언 된 인증 메커니즘을 사용합니다. 사실상 SSL (Secure Socket Layer) 인증 또는 양식 기반 쿠키 인증 중 하나입니다.

쿠키 기반 세션 인증을 사용하려는 경우 사용자는 이후 호출을 위해 ID를 확인하는 데 사용할 수있는 세션을 만들기 위해 먼저 웹 서비스를 인증해야합니다. 서블릿 스펙은 웹 양식을 사용하여 쿠키 및 세션을 사용하여 인증하는 표준화 된 방법을 제공하지만 웹 서비스 유형의 응용 프로그램과 호환되지 않습니다. 따라서 사용자가 XML 또는 JSON 문서를 게시하여 자격 증명을 제출할 수 있도록 일부 사용자 지정 솔루션을 작성하려고합니다. 이 방법의 문제점은 사용자가 먼저 인증하지 않거나 세션이 만료 된 후에 자원 호출을 수행하는 경우 리다이렉트되거나 오류 코드 유형을 수신해야한다는 것입니다. 불가능하지는 않지만 웹 서비스를 복잡하게 만듭니다.

HTTP 인증을 사용하면 웹 서비스 스타일 앱에 더 적합한 선택이 아닌지 궁금 할 것입니다. 우리는 최근 Jersey와 HTTP Auth를 인증 메커니즘으로 사용하여 웹 서비스를 구축했습니다. 그런 다음 위에 자바 프런트 엔드를 만듭니다. Javascript 클라이언트는 항상 인증 헤더를 웹 서비스에 제출하여 사용자가 브라우저의 HTTP Auth 인증 창과 마주 치지 않도록합니다. 아마도 두 세계의 최고.

관련 문제