Проигнорируйте самоподписанный ssl сертификат с помощью Клиента Джерси

Я пользуюсь библиотекой Jersey Client для запущения тестов против сервиса отдыха, работающего jboss. У меня есть https настроенный штраф на сервере (работающий localhost), с помощью сам подписанный сертификат.

Однако каждый раз, когда я запускаю свои тесты с https URL, я получаю следующую ошибку:

com.sun.jersey.api.client.ClientHandlerException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:131)
    at com.sun.jersey.api.client.Client.handle(Client.java:629)
    at com.sun.jersey.oauth.client.OAuthClientFilter.handle(OAuthClientFilter.java:137)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:601)
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
    at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:459)
    at test.helper.Helper.sendSignedRequest(Helper.java:174)
    ... And so on

Я знаю, что это вызвано тем, что мой сам сертификат со знаком не находится в Java keystore. Есть ли любой способ, которым я могу сделать Client не проверяют законность ssl сертификата и просто используют его независимо?

Этот код будет только когда-либо выполняться против тестовых серверов, таким образом, я не захочу переходить к стычке добавления новых доверяемых сертификатов каждый раз, когда мы настраиваем новый тестовый сервер.

Вот код, который выполняет вызов:

OAuthParameters params = new OAuthParameters();

// baseline OAuth parameters for access to resource
params.signatureMethod(props.getProperty("signature_method"));
params.consumerKey(props.getProperty("consumer_key"));
params.setToken(props.getProperty("token"));
params.setVersion("1.0");
params.nonce();

// OAuth secrets to access resource
OAuthSecrets secrets = new OAuthSecrets();
secrets.consumerSecret(props.getProperty("consumer_secret"));
secrets.setTokenSecret(props.getProperty("token_secret"));

// Jersey client to make REST calls to token services
Client client = Client.create();

// OAuth test server resource
WebResource resource = client.resource(props.getProperty("url"));

// if parameters and secrets remain static, filter cab be added to each web resource
OAuthClientFilter filter = new OAuthClientFilter(client.getProviders(), params, secrets);

// filter added at the web resource level
resource.addFilter(filter);
WebResource.Builder wbr = resource.getRequestBuilder().accept(props.getProperty("accept"));

return wbr.get(ClientResponse.class);

Любая справка значительно ценилась бы.

61
задан 18 May 2011 в 20:32

0 ответов

Другие вопросы по тегам:

Похожие вопросы: