Работа с защищенным сервисом OData - PullRequest
0 голосов
/ 20 октября 2010

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

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

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

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

В классе 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);
    }

}
0 голосов
/ 15 сентября 2011

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

...