Работа с защищенным сервисом OData

Я хочу создать классы сущностей и класс службы защищенной службы OData. На странице расширения OData Java написано, что мне нужно использовать класс org.restlet.ext.odata.Generator, который должен получить параметры uri и выходного каталога. Но если моя служба OData защищена, экземпляр генератора не может генерировать классы службы без имени пользователя и пароля службы. Я не нашел способа передать имя пользователя и пароль в класс генератора.

Я получаю код ответа HTTP 401.

Пожалуйста помоги.


person Slavik    schedule 20.10.2010    source источник


Ответы (2)


В классе org.restlet.ext.odata.Generator в методе main следующий код очистит данные учетных данных, установленные в методе setCredentials().

Service service = new Service(dataServiceUri);
if(service.getMetadata() == null)
{
  errorMessage = "Cannot retrieve the metadata.";
}

Пожалуйста, предоставьте решение этой проблемы, так как в настоящее время я не могу создавать классы для моей службы отдыха, поскольку служба защищена паролем пользователя.

Я попробовал следующий код, чтобы сгенерировать код для моей защищенной службы uri:

import org.restlet.ext.odata.Generator;
import org.restlet.ext.odata.Service;
import org.restlet.data.ChallengeResponse;
import org.restlet.data.ChallengeScheme;

public class ODataRestletGenerator extends Service {

    public ODataRestletGenerator(String serviceUri) {
        super(serviceUri);
    }

    public static final String APPLICATION_URI = "http://ldcigkd.xxx.yyy.corp:50033/xxx/opu/sdata/IWCNT/CUSTOMER/";

    public static void main(String[] args) {

        // Add the client authentication to the call
        ChallengeScheme scheme = ChallengeScheme.HTTP_BASIC;
        ChallengeResponse credentials = new ChallengeResponse(scheme, "user", "pwd");       
        new ODataRestletGenerator(APPLICATION_URI).setauth(credentials);

        String[] arguments = { APPLICATION_URI, "/customer/src" };
        Generator.main(arguments);
    }

    private void setauth(ChallengeResponse credentials) {

        super.setCredentials(credentials);
    }

}
person Sounak Basu    schedule 08.11.2011

В подклассе org.restlet.ext.odata.Service, созданном расширением OData, вы можете вызвать setCredentials() и передать экземпляр ChallengeResponse, включая схему (BASIC?), логин (идентификатор) и пароль (секрет).

person Jerome Louvel    schedule 15.09.2011