Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在使用Citrus时禁用服务器证书中的主机名验证_Java_Ssl Certificate_Citrus Framework - Fatal编程技术网

Java 如何在使用Citrus时禁用服务器证书中的主机名验证

Java 如何在使用Citrus时禁用服务器证书中的主机名验证,java,ssl-certificate,citrus-framework,Java,Ssl Certificate,Citrus Framework,在使用Citrus测试框架对服务器进行测试时,我无法禁用证书检查 我得到以下错误: org.springframework.web.client.ResourceAccessException:对“”的POST请求时发生I/O错误:的证书与证书主题的公用名称不匹配:;嵌套异常是javax.net.ssl.SSLException 以下是用于在Citrus中创建端点的代码片段: @Bean public HttpClient myClientSSL() throws Exceptio

在使用Citrus测试框架对服务器进行测试时,我无法禁用证书检查

我得到以下错误: org.springframework.web.client.ResourceAccessException:对“”的POST请求时发生I/O错误:的证书与证书主题的公用名称不匹配:;嵌套异常是javax.net.ssl.SSLException

以下是用于在Citrus中创建端点的代码片段:

   @Bean
    public HttpClient myClientSSL() throws Exception{
            return CitrusEndpoints.http()
                          .client()
                          .requestUrl("https://w.x.y.z:port")
                          .requestFactory(mySSLBasicAuthRequestFactory())
                          .build();
    }

    @Bean
    public BasicAuthClientHttpRequestFactory mySSLBasicAuthRequestFactoryBean() {
        BasicAuthClientHttpRequestFactory requestFactory = new BasicAuthClientHttpRequestFactory();

        AuthScope authScope = new AuthScope(bpmServer, Integer.parseInt(bpmPort), "", "basic");
        requestFactory.setAuthScope(authScope);

        UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(user, password);
        requestFactory.setCredentials(credentials);
        return requestFactory;
    }

    @Bean
    public HttpComponentsClientHttpRequestFactory mySSLBasicAuthRequestFactory() throws Exception {
        return mySSLBasicAuthRequestFactoryBean().getObject();
    }

任何想法都欢迎。
thx

我终于找到了一种方法,通过查看Citrus的源代码,下面是我为使其工作而想到的方法,只是把它放在这里,以防它对其他人有帮助:

    @Bean
    public HttpComponentsClientHttpRequestFactory mySSLBasicAuthRequestFactory() throws Exception {

        AuthScope authScope = new AuthScope(myServer, myPort, "", "basic"); 
        HttpComponentsClientHttpRequestFactory myHttpComponentsClientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory() {
            @Override
            protected HttpContext createHttpContext(HttpMethod httpMethod, URI uri) {
                // we have to use preemptive authentication
                // therefore add some basic auth cache to the local context
                AuthCache authCache = new BasicAuthCache();
                BasicScheme basicAuth = new BasicScheme();

//                authCache.put(new HttpHost(authScope.getHost(), authScope.getPort(), "http"), basicAuth);
                authCache.put(new HttpHost(authScope.getHost(), authScope.getPort(), "https"), basicAuth);

                BasicHttpContext localcontext = new BasicHttpContext();
                localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);

                return localcontext;
            }
        };

        UsernamePasswordCredentials myCredentials = new UsernamePasswordCredentials(myUser, myPassword);
        CredentialsProvider provider = new BasicCredentialsProvider();
        provider.setCredentials(AuthScope.ANY, myCredentials);

        CloseableHttpClient myHttpClient = HttpClients.custom()
                .setSSLHostnameVerifier(new NoopHostnameVerifier())
                .setDefaultCredentialsProvider(provider)
                .setSslcontext(new SSLContextBuilder().loadTrustMaterial(null, (x509Certificates, s) -> true)
                    .build())
                .build();

        myHttpComponentsClientHttpRequestFactory.setHttpClient(myHttpClient);
        return myHttpComponentsClientHttpRequestFactory;
    }