Ошибка командной строки CXF wsdl2java о параметре disableCNCheck - PullRequest
0 голосов
/ 29 июля 2011

Я использую инструмент командной строки CXF wsdl2java для генерации классов Java из WSDL при подключении https. Во время генерации все идет хорошо, но когда я вызываю одну из служб, предлагаемых WSDL, я получаю следующее исключение:

java.io.IOException: The https URL hostname does not match the Common Name (CN) on the server certificate. To disable this check (NOT recommended for production) set the CXF client TLS configuration property "disableCNCheck" to true.

Является ли это disableCNCheck чем-то, что я могу установить во время генерации классов Java? Кажется, нет, или, по крайней мере, это недопустимая опция для wsdl2java.

Это то, что я должен указать в wsdl или в моем приложении (grails), которое использует сгенерированные классы Java?

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Оказывается, дело не во времени генерации, а во время выполнения.

Чтобы установить флаг disableCNCheck, я сделал это так:

protected void disableCNCheck(Object port) {
    Client client = ClientProxy.getClient(port)

    TLSClientParameters params = new TLSClientParameters()
    params.setDisableCNCheck(true)
    HTTPConduit httpConduit = (HTTPConduit) client?.getConduit()
    httpConduit?.setTlsClientParameters(params)
}

где порт - это объектиспользуется для общения со службой API, защищенной SSL.

0 голосов
/ 19 июня 2014

Я получил disableCNCheck, добавив приведенную ниже конфигурацию xml в grails-app / conf / spring / resources.xml [Grails 2.2.3, плагин cxf-client 1.6.1]

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:http="http://cxf.apache.org/transports/http/configuration" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
            http://cxf.apache.org/transports/http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
      "> 

  <http:conduit name="*.http-conduit"> 
    <http:tlsClientParameters disableCNCheck="true" /> 
  </http:conduit> 

</beans> 
...