Apache Jersey를 사용하여 RESTful 웹 서비스를 구축 중입니다. 이제 요청에 대한 인증이 필요합니다. 일반적인 REST 접근 방식을 사용하면 HTTP 인증을 통해 인증을 수행해야합니다. 그러나 게시물 here에는 쿠키를 사용하는 방법이 더 나은 방법이라고 언급되어 있습니다. 나는 토론에 몇 가지 유효한 점이 있다고 생각한다. (어떻게) 쿠키로 저지 인증을 사용할 수 있습니까? 그것을위한 또 다른 틀이 필요합니까?HTTP 인증을 사용하지 않고 Apache Jersey에서 인증 하시겠습니까?
4
A
답변
6
Jersey는 웹 애플리케이션의 web.xml에 선언 된 인증 메커니즘을 사용합니다. 사실상 SSL (Secure Socket Layer) 인증 또는 양식 기반 쿠키 인증 중 하나입니다.
쿠키 기반 세션 인증을 사용하려는 경우 사용자는 이후 호출을 위해 ID를 확인하는 데 사용할 수있는 세션을 만들기 위해 먼저 웹 서비스를 인증해야합니다. 서블릿 스펙은 웹 양식을 사용하여 쿠키 및 세션을 사용하여 인증하는 표준화 된 방법을 제공하지만 웹 서비스 유형의 응용 프로그램과 호환되지 않습니다. 따라서 사용자가 XML 또는 JSON 문서를 게시하여 자격 증명을 제출할 수 있도록 일부 사용자 지정 솔루션을 작성하려고합니다. 이 방법의 문제점은 사용자가 먼저 인증하지 않거나 세션이 만료 된 후에 자원 호출을 수행하는 경우 리다이렉트되거나 오류 코드 유형을 수신해야한다는 것입니다. 불가능하지는 않지만 웹 서비스를 복잡하게 만듭니다.
HTTP 인증을 사용하면 웹 서비스 스타일 앱에 더 적합한 선택이 아닌지 궁금 할 것입니다. 우리는 최근 Jersey와 HTTP Auth를 인증 메커니즘으로 사용하여 웹 서비스를 구축했습니다. 그런 다음 위에 자바 프런트 엔드를 만듭니다. Javascript 클라이언트는 항상 인증 헤더를 웹 서비스에 제출하여 사용자가 브라우저의 HTTP Auth 인증 창과 마주 치지 않도록합니다. 아마도 두 세계의 최고.
관련 문제
- 1. PHP 인증을 사용하는 HTTP 인증
- 2. PHP를 사용하고 HTTP 인증을 사용하지 않고 아파치 access_log에 사용자 이름 입력
- 3. Authlogic - 기본 HTTP 인증을 통한 인증
- 4. Apache 기본 인증
- 5. FFserver : HTTP 인증으로 보안 설정 하시겠습니까? (Apache?)
- 6. mod_rewrite를 사용하지 않고 Apache URL 재 작성
- 7. Apache LDAP 인증 Redmine
- 8. HTTP 인증 로그인을 취소 하시겠습니까?
- 9. 플렉스를 사용하지 않고 RSL을로드 하시겠습니까?
- 10. mod_rewrite를 사용하지 않고 PHP를 확장하지 않고 실행 하시겠습니까?
- 11. Apache 2 인증 오류
- 12. SQL 서버 인증을 사용하도록 Apache 구성
- 13. http 기반 인증 만들기
- 14. apache HTTP 클라이언트의 로깅을 사용 중지 하시겠습니까?
- 15. HTTP 기본 인증을 사용하는 WCF
- 16. J2ME의 HTTP 인증
- 17. IIS 인증 용 HTTP 인증 헤더
- 18. 기본 인증을 사용하는 Apache 역방향 프록시
- 19. Authlogic으로 HTTP 기본 인증
- 20. 여러 인증 방법 또는 역할 기반 인증을 구현 하시겠습니까?
- 21. username 패스워드 인증을 사용하지 않고 서블릿 URL을 보호하기
- 22. 인증을 통한 Apache 프록시 설정
- 23. HTTP 인증 클라이언트 라이브러리
- 24. 마우스를 사용하지 않고 NUnit 테스트를 실행 하시겠습니까?
- 25. INotifyPropertyChange를 사용하지 않고 처음부터 MVVM을 구현 하시겠습니까?
- 26. 탐색 컨트롤러를 사용하지 않고 전환을 확인 하시겠습니까?
- 27. 참조를 사용하지 않고 빌드 종속성을 설정 하시겠습니까?
- 28. 추가 배열을 사용하지 않고 mergesort를 구현 하시겠습니까?
- 29. ; webrole을 사용하지 않고?
- 30. 어노테이션을 사용하지 않고 Jersey에서 프로그래밍 방식으로 요청 메소드 (GET/POST/PUT)를 수행 할 수 있습니까?