Restlet 2.0.8を使用しており、アプリケーションインスタンスがorg.restlet.Application#createInboundRoot()を上書きしています。そこで、Routerインスタンスを作成し、以下のコードのように、(現時点では)DigestAuthenticatorを返します。
@Override
public synchronized Restlet createInboundRoot() {
log.info("App::createInboundRoot called");
this.authenticator = getAuthenticator();
Router router = new Router(getContext());
router.attach("/echo", EchoResource.class);
router.attach("/status", StatusResource.class);
authenticator.setNext(router);
return authenticator;
}
private ChallengeAuthenticator getAuthenticator() {
DigestAuthenticator auth = new DigestAuthenticator(getContext(), "Guard", "s3cret");
auth.setWrappedVerifier(new SimpleVerifier("user","pass");
auth.setOptional(false);
return auth;
}
私が達成したいのは:
- ダイジェスト認証を使用するEchoResourceがあり、StatusResourceはHTTP基本認証を使用する必要があります
これはRestletsで可能ですか?
最高、クリス