Restlet에서는 클라이언트와 서버 모두에서 보안을 지원합니다. 클라이언트 측에서는 ChallengeResponse 엔티티를 사용하여 보안 힌트를 지정할 수 있습니다. 이 기능은 열려 있으며 원하는 인증 유형을 지정할 수 있습니다. 다음 코드에서는 사용자 이름/비밀번호를 기반으로 HTTP 기본 인증을 사용합니다.
ClientResource cr = new ClientResource(uri);
ChallengeScheme scheme = ChallengeScheme.HTTP_BASIC;
ChallengeResponse authentication = new ChallengeResponse(
scheme, "username", "password");
cr.setChallengeResponse(authentication);
Restlet은 해당 요청에 필요한 헤더를 자동으로 작성합니다. Restlet은 확장 기능을 통해 다양한 인증 유형을 지원합니다. OAuth v2 (http://wiki.restlet.org/developers/172-restlet/257-restlet/310-restlet.html 참조)를 지원하기 위해 현재 일부 작업이 완료되었음을 알고 있습니다.
서버 측에서는 아래 설명 된대로 ChallengeAuthenticator 엔터티를 사용하여 라우팅 수준에서 액세스를 보호해야합니다. 이것은 당신으로 Restlet 응용 프로그램 내에서 수행 할 수 있습니다
public Restlet createInboundRoot() {
Router router = new Router(getContext());
ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(),
ChallengeScheme.HTTP_BASIC, "realm");
guard.setVerifier(verifier);
guard.setEnroler(enroler);
guard.setNext(router);
return guard;
}
, 이러한 지원은 제네릭과 경비를 지정할 필요는 두 개의 인터페이스를 기반으로 클라이언트 측에 대한처럼 :
- 인증 장치 하나 인증이 성공하면
가
- 인증 된 사용자에 대한
을 역할을 채우기 위해 enroler 한 당신은 같은 보안 기술이 있어야 알 수 확인 양면에서 사용하십시오 ...
사용자의 인증 세션을 관리하려면 쿠키를 사용하여 직접 구현해야합니다.
인증이 서버 측에서 성공하면 데이터베이스에서 사용자를 확인할 수있는 보안 토큰이 포함 된 쿠키를 반환 할 수 있습니다 (예 :). 아래 같은 일부 코드는 그것을 구현할 수 있습니다
CookieSetting cookie = new CookieSetting(0,
SECURITY_COOKIE_NAME, securityToken);
Series<CookieSetting> cookieSettings = response.getCookieSettings();
cookieSettings.clear();
cookieSettings.add(cookie);
받은 보안 데이터에 대한 테스트를 추가하고 보안 쿠키를받을 때이 코드를 추가하는 예를 들어으로 Restlet의 SecretVerifier 클래스를 확장 할 수 있습니다.
ClientResource clientResource = (...)
(...)
Cookie securityCookie = new Cookie(0,
SECURITY_COOKIE_NAME, securityToken);
clientResource.getRequest().getCookies().clear();
clientResource.getRequest().getCookies().add(securityCookie);
은 당신을 도울 것입니다 희망 : 아래에 설명 된대로 클라이언트 측에
, 당신은 항상 다음과 같은 보안 쿠키를 보낼 다시 다음 인증을 위해 처음 힌트를 추가 할 필요! Thierry
더 많은 설명을 추가하려면 클라이언트 측 및 서버 측에 iPhone 또는 Android 앱이 있어야합니다. 클라이언트와 함께 작동하려면 Google App Engine을 사용하고 있습니다. – jlc488
그리고이 고객이 facebook, yahoo, twitter .. 등의 자체 소셜 계정 정보로 가입하고 가입하기를 원합니다. – jlc488
이 사이트에 로그인 한 후이 클라이언트가 GAE에서 RESTlet 리소스에 액세스되기를 바랍니다. 감사. – jlc488