@Override public void testEnded(String host) { log.info("Destroying Keystore"); SSLManager.getInstance().destroyKeystore(); }
/** * Configure Keystore * * @param preload * flag whether the keystore should be opened within this method, * or the opening should be delayed * @param startIndex * first index to consider for a key * @param endIndex * last index to consider for a key * @param clientCertAliasVarName * name of the default key, if empty the first key will be used * as default key */ public void configureKeystore(boolean preload, int startIndex, int endIndex, String clientCertAliasVarName) { this.keystoreAliasStartIndex = startIndex; this.keystoreAliasEndIndex = endIndex; this.clientCertAliasVarName = clientCertAliasVarName; if(preload) { keyStore = getKeyStore(); } }
/** * Sets the Provider attribute of the JsseSSLManager object * * @param p * The new Provider value */ @Override protected final void setProvider(Provider p) { super.setProvider(p); if (null == this.pro) { this.pro = p; } }
/** * Called by sslManager button. Raises sslManager dialog. * I.e. a FileChooser for PCSI12 (.p12|.P12) or JKS files. */ private void sslManager() { SSLManager.reset(); JFileChooser keyStoreChooser = new JFileChooser(System.getProperty("user.dir")); //$NON-NLS-1$ keyStoreChooser.setDialogTitle(JMeterUtils.getResString("sslmanager.title")); keyStoreChooser.addChoosableFileFilter(new AcceptPKCS12OrJKSFileFilter()); keyStoreChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); int retVal = keyStoreChooser.showOpenDialog(GuiPackage.getInstance().getMainFrame()); if (JFileChooser.APPROVE_OPTION == retVal) { File selectedFile = keyStoreChooser.getSelectedFile(); try { System.setProperty(SSLManager.JAVAX_NET_SSL_KEY_STORE, selectedFile.getCanonicalPath()); } catch (IOException e) { //Ignored } } SSLManager.getInstance(); }
preload, startIndexAsInt, endIndexAsInt, clientCertAliasVarName); SSLManager.getInstance().configureKeystore(Boolean.parseBoolean(preload), startIndexAsInt, endIndexAsInt,
if (HTTPConstants.PROTOCOL_HTTPS.equalsIgnoreCase(u.getProtocol())) { try { sslmgr=SSLManager.getInstance(); // N.B. this needs to be done before opening the connection } catch (Exception e) { log.warn("Problem creating the SSLManager: ", e); try { if (null != sslmgr){ sslmgr.setContext(conn); // N.B. must be done after opening connection
private SSLSocketFactory getSSLSocketFactory() throws IOException { try { SSLContext sslContext = ((JsseSSLManager)SSLManager.getInstance()).getContext(); return sslContext.getSocketFactory(); } catch (GeneralSecurityException ex) { throw new IOException("Rethrown as IOE", ex); } }
try (InputStream fis = new FileInputStream(initStore); InputStream fileInputStream = new BufferedInputStream(fis)) { this.keyStore.load(fileInputStream, getPassword()); if (log.isInfoEnabled()) { log.info(
if (SSLManager.isSSLSupported()) { optionsMenu.add(makeMenuItemRes("sslmanager", 'S', ActionNames.SSL_MANAGER, KeyStrokes.SSL_MANAGER));
/** * Reset SSL State. <br/> * In order to do that we need to: * <ul> * <li>Call resetContext() on SSLManager</li> * <li>Close current Idle or Expired connections that hold SSL State</li> * <li>Remove HttpClientContext.USER_TOKEN from {@link HttpClientContext}</li> * </ul> * @param jMeterVariables {@link JMeterVariables} * @param clientContext {@link HttpClientContext} * @param mapHttpClientPerHttpClientKey Map of {@link Pair} holding {@link CloseableHttpClient} and {@link PoolingHttpClientConnectionManager} */ private void resetStateIfNeeded(JMeterVariables jMeterVariables, HttpClientContext clientContext, Map<HttpClientKey, Pair<CloseableHttpClient, PoolingHttpClientConnectionManager>> mapHttpClientPerHttpClientKey) { if (resetStateOnThreadGroupIteration.get()) { closeCurrentConnections(mapHttpClientPerHttpClientKey); clientContext.removeAttribute(HttpClientContext.USER_TOKEN); ((JsseSSLManager) SSLManager.getInstance()).resetContext(); resetStateOnThreadGroupIteration.set(false); } }