0
Restlet Authentication and Authorization을 사용하고 있습니다. 하지만 내 사용자 정의 된 등록자에서 비밀을 얻을 수 없습니다, 그것은 null입니다. . 여기에 코드입니다 :Restlet Authorizer에서 비밀을 얻을 수 없습니다.
TestApplication.java
@Override
public Restlet createInboundRoot()
{
Router rootRouter = new Router(getContext());
Router pubRouter = new Router(getContext());
pubRouter.attach("/test", TestResource.class);
RoleAuthorizer ra = new RoleAuthorizer();
ra.getAuthorizedRoles().add(MyEnroler.PUBLISHER);
ra.setNext(pubRouter);
rootRouter.attach("/publish", ra);
ChallengeAuthenticator guard =
new ChallengeAuthenticator(getContext(),ChallengeScheme.HTTP_BASIC, "my realm");
guard.setVerifier(new MyVerifier());
guard.setEnroler(new MyEnroler());
guard.setNext(rootRouter);
return guard;
}
Enroller.java
public class MyEnroler implements Enroler
{
public final static Role PUBLISHER = new Role("publisher", "publisher");
public void enrole(ClientInfo clientInfo)
{
System.out.println(clientInfo.getUser().getIdentifier());
System.out.println(new String(theClientInfo.getUser().getSecret()));
}
}
theClientInfo.getUser() getSecret()는 항상 null을 반환은
ClientResource.java
public static void main(String[] args) throws Exception
{
// Create a HTTP Server listening to the port 8182
Component c = new Component();
c.getServers().add(Protocol.HTTP, 8182);
c.getDefaultHost().attach("/myapp", new TestApplication());
c.start();
ClientResource pubResource =
new ClientResource("http://localhost:8182/myapp/publish/test");
ChallengeResponse cr =
new ChallengeResponse(ChallengeScheme.HTTP_BASIC, "scott", "tiger");
pubResource.setChallengeResponse(cr);
pubResource.get()
}
이유를 아는 사람이 있습니까?
감사합니다.