Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.solr.util;
  
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 import java.io.File;
 
 
 
 public class SSLTestConfig extends SSLConfig {
   public static File TEST_KEYSTORE = . == null ? null
       : new File(."../etc/solrtest.keystore");
   
   private static String TEST_KEYSTORE_PATH =  != null
       && .exists() ? .getAbsolutePath() : null;
   private static String TEST_KEYSTORE_PASSWORD = "secret";
   
   public SSLTestConfig() {
     this(falsefalse);
   }
   
   public SSLTestConfig(boolean useSSLboolean clientAuth) {
   }
  
   public SSLTestConfig(boolean useSSLboolean clientAuthString keyStoreString keyStorePasswordString trustStoreString trustStorePassword) {
     super(useSSLclientAuthkeyStorekeyStorePasswordtrustStoretrustStorePassword);
   }
  
  
Will provide an HttpClientConfigurer for SSL support (adds https and removes http schemes) is SSL is enabled, otherwise return the default configurer
 
     return isSSLMode() ? new SSLHttpClientConfigurer() : ;
   }

  
Builds a new SSLContext with the given configuration and allows the uses of self-signed certificates during testing.
 
   protected SSLContext buildSSLContext() throws KeyManagementException
     
     return SSLContexts.custom()
   }
   
   
   protected static KeyStore buildKeyStore(String keyStoreLocationString password) {
     try {
       return CertificateUtils.getKeyStore(nullkeyStoreLocation"JKS"nullpassword);
     } catch (Exception ex) {
       throw new IllegalStateException("Unable to build KeyStore from file: " + keyStoreLocationex);
     }
   }
   
   private class SSLHttpClientConfigurer extends HttpClientConfigurer {
     @SuppressWarnings("deprecation")
     protected void configure(DefaultHttpClient httpClientSolrParams config) {
       super.configure(httpClientconfig);
       SchemeRegistry registry = httpClient.getConnectionManager().getSchemeRegistry();
       // Make sure no tests cheat by using HTTP
       registry.unregister("http");
       try {
         registry.register(new Scheme("https", 443, new SSLSocketFactory(buildSSLContext())));
      } catch (KeyManagementException ex) {
        throw new IllegalStateException("Unable to setup https scheme for HTTPClient to test SSL."ex);
      } catch (UnrecoverableKeyException ex) {
        throw new IllegalStateException("Unable to setup https scheme for HTTPClient to test SSL."ex);
      } catch (NoSuchAlgorithmException ex) {
        throw new IllegalStateException("Unable to setup https scheme for HTTPClient to test SSL."ex);
      } catch (KeyStoreException ex) {
        throw new IllegalStateException("Unable to setup https scheme for HTTPClient to test SSL."ex);
      }
    }
  }
  
  public static void setSSLSystemProperties() {
    System.setProperty("javax.net.ssl.keyStore");
    System.setProperty("javax.net.ssl.keyStorePassword");
    System.setProperty("javax.net.ssl.trustStore");
    System.setProperty("javax.net.ssl.trustStorePassword");
  }
  
  public static void clearSSLSystemProperties() {
    System.clearProperty("javax.net.ssl.keyStore");
    System.clearProperty("javax.net.ssl.keyStorePassword");
    System.clearProperty("javax.net.ssl.trustStore");
    System.clearProperty("javax.net.ssl.trustStorePassword");
  }
  
New to GrepCode? Check out our FAQ X