Example usage for org.bouncycastle.jsse.provider BouncyCastleJsseProvider BouncyCastleJsseProvider

List of usage examples for org.bouncycastle.jsse.provider BouncyCastleJsseProvider BouncyCastleJsseProvider

Introduction

In this page you can find the example usage for org.bouncycastle.jsse.provider BouncyCastleJsseProvider BouncyCastleJsseProvider.

Prototype

public BouncyCastleJsseProvider() 

Source Link

Usage

From source file:org.apache.cxf.systest.https.clientauth.ClientAuthTest.java

License:Apache License

@org.junit.Test
public void testBouncyCastleProvider() throws Exception {
    // TODO There seems to be a bug with BC 1.60 + JDK 11
    Assume.assumeFalse(JavaUtils.isJava11Compatible());
    try {//from  www  .  j av a2s. c  o  m
        Security.addProvider(new BouncyCastleProvider());
        Security.addProvider(new BouncyCastleJsseProvider());
        URL url = SOAPService.WSDL_LOCATION;
        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
        assertNotNull("Service is null", service);

        // Set up (shared) KeyManagers/TrustManagers
        X509TrustManager trustManager = new NoOpX509TrustManager();
        TrustManager[] trustManagers = new TrustManager[1];
        trustManagers[0] = trustManager;

        KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

        try (InputStream inputStream = ClassLoaderUtils.getResourceAsStream("keymanagers.jks",
                this.getClass())) {
            KeyStore keyStore = KeyStore.getInstance("JKS");
            keyStore.load(inputStream, "password".toCharArray());

            kmf.init(keyStore, "password".toCharArray());
        }
        KeyManager[] keyManagers = kmf.getKeyManagers();

        // First call to PORT using Morpit
        TLSClientParameters tlsParams = new TLSClientParameters();
        tlsParams.setJsseProvider(new BouncyCastleJsseProvider().getName());
        tlsParams.setKeyManagers(keyManagers);
        tlsParams.setCertAlias("morpit");
        tlsParams.setTrustManagers(trustManagers);
        tlsParams.setDisableCNCheck(true);

        Greeter port = service.getHttpsPort();
        assertNotNull("Port is null", port);

        updateAddressPort(port, PORT);
        Client client = ClientProxy.getClient(port);
        HTTPConduit http = (HTTPConduit) client.getConduit();
        http.setTlsClientParameters(tlsParams);

        assertEquals(port.greetMe("Kitty"), "Hello Kitty");
        ((java.io.Closeable) port).close();
    } finally {
        Security.removeProvider(new BouncyCastleJsseProvider().getName());
        Security.removeProvider(new BouncyCastleProvider().getName());
    }
}