2012-08-16 2 views
0

저는 Jersey RestFul Webservices로 구성된 Java EE 기반 웹 응용 프로그램을 개발 중입니다. 구글의 Chromes 나머지 클라이언트, 또는 그러한 도구와 같은 : 는웹 응용 프로그램에 소스의 요청을 알 수 있습니까?

1. 요청이 웹 서비스 클라이언트 도구에서 (예를 들어 인 경우 뉴저지 편안한 Webservice를위한 요청이왔다 어디 의미에서, 알고하는 것이 가능 그)

2 또는 은 로그인 사용자에서 요청됩니다.

내 서비스 클래스에는이 조건이 있습니다.

//이 조건은 웹 서비스 클라이언트 도구에서 올바르게 작동합니다.

HttpSession httpsession = req.getSession(false); 
if(httpsession==null) 
{ 
throw new WebApplicationException(SC_FORBIDDEN); 
} 

이 단순히 서비스 요청에 대한 응답으로 금지 예외를 throw WebService에 클라이언트 도구를 처리하기 위해 잘 작동하지만,에서 Jsession 아이디 쿠키 삭제 될 수 있습니다, 또한 사용자 로그인 상태가있을 수 있습니다 브라우저를 클릭하고 서비스 중 하나에 전화를 걸면 이러한 유형의 요청을 로그인 페이지로 리디렉션하려고합니다.

그래서 기본적으로 내가 요청했는데 요청이 만들어진 곳을 알 수 있습니까 ??

답변

0

REST 보안 문제를 해결하는 한 가지 방법은 오픈 소스 프로토콜 OAuth입니다. OAuth website에서 설명한 것처럼 OAuth는 "데스크톱 및 웹 응용 프로그램에서 간단하고 표준적인 방법으로 안전한 API 인증을 허용하는 개방형 프로토콜"입니다. OAuth는 Google AuthSub, AOL OpenAuth, Yahoo BBAuth, 다가오는 API, Flickr API 및 Amazon Web Services API를 비롯하여 여러 독점 프레임 워크에서 사용하는 일반적인 원칙을 통합합니다.

OAuth 프로토콜을 사용하면 웹 사이트 또는 응용 프로그램 (서비스 소비자라고 함)이 API를 통해 웹 서비스 (서비스 공급자라고 함)에서 보호 된 리소스에 액세스 할 수 있습니다. API는 사용자가 서비스 공급자 자격 증명을 소비자에게 공개 할 것을 요구하지 않습니다.

+0

Lars에게 감사하지만, 서비스에 대한 무단 액세스가 이미 해결되었으므로 요청 유형에 따라 적절한 메시지를 표시하는 것이 문제입니다. – Pawan

관련 문제