title: Netty httpclientsecure class cannot be found
body: <p>I am trying to authenticate to Azure Vault. I keep getting this error:</p>
  <p>java.lang.NoClassDefFoundError: Could not initialize class reactor.netty.http.client.HttpClientSecure</p>
  <p>Here is my code for azure Authentication:</p>
  <pre><code>public class AzureKeyVaultAuthenticator {
  
      /**
       * Do certificate based authentication using your PFX file.
       *
       * @param clientId
       *            Also known as applicationId which is received as a part of the app creation process.
       * @param tenantId
       *            Also known as directoryId which is received as a part of the app creation process.
       * @param pathPfx
       *            Path to your PFX certificate.
       * @param pfxPassword
       *            Password to your PFX certificate, this can be empty if that's the value given when it was created.
       */
      public TokenCredential getTokenCredential(String clientId, String tenantId, String pathPfx, String pfxPassword) {
  
          TokenCredential credential = new ClientCertificateCredentialBuilder()
                  .clientId(clientId)
                  .tenantId(tenantId)
                  .pfxCertificate(pathPfx, pfxPassword)
                  .build();
  
          return credential;
      }
  
      /**
       * Find the vault you want to operate on by keyVaultName.
       *
       * @param credential
       *            Credential to authenticate a {@link KeyVaultManager} with.
       * @param resourceGroupName
       *            The name of the resource group your Key Vault is a part of.
       * @param vaultBaseUrl
       *            The URL that identifies your Key Vault.
       * @return A {@link Vault} object representing your Key Vault.
       */
      public Vault getVault(TokenCredential credential, String resourceGroupName, String vaultBaseUrl) {
  
          AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
          KeyVaultManager manager = KeyVaultManager.authenticate(credential, profile);
  
          Optional&lt;Vault&gt; optional = manager
                  .vaults()
                  .listByResourceGroup(resourceGroupName)
                  .stream()
                  .filter(vault -&gt; vaultBaseUrl.equals(vault.vaultUri()))
                  .findFirst();
          if (optional.isPresent()) {
              return optional.get();
          }
          return null;
      }
  }
  </code></pre>
  <p>I think it is due to a compatibility with dependency versions. I am using the versions as prescribed in the bom file of the official GitHub for azure SDK.</p>
  <p>This is a part of my pom file</p>
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-administration&lt;/artifactId&gt;
      &lt;version&gt;4.0.3&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-certificates&lt;/artifactId&gt;
      &lt;version&gt;4.2.3&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-jca&lt;/artifactId&gt;
      &lt;version&gt;2.0.0&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-keys&lt;/artifactId&gt;
      &lt;version&gt;4.3.3&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-secrets&lt;/artifactId&gt;
      &lt;version&gt;4.3.3&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-core-management&lt;/artifactId&gt;
      &lt;version&gt;1.4.1&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure.resourcemanager&lt;/groupId&gt;
      &lt;artifactId&gt;azure-resourcemanager-resources&lt;/artifactId&gt;
      &lt;version&gt;2.8.0&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure.resourcemanager&lt;/groupId&gt;
      &lt;artifactId&gt;azure-resourcemanager-keyvault&lt;/artifactId&gt;
      &lt;version&gt;2.8.0&lt;/version&gt;
  &lt;/dependency&gt;
  
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-keys&lt;/artifactId&gt;
      &lt;version&gt;4.3.2&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.microsoft.azure&lt;/groupId&gt;
      &lt;artifactId&gt;msal4j&lt;/artifactId&gt;
      &lt;version&gt;1.11.0&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-security-keyvault-administration&lt;/artifactId&gt;
      &lt;version&gt;4.0.3&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-identity&lt;/artifactId&gt;
      &lt;version&gt;1.3.6&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.azure&lt;/groupId&gt;
      &lt;artifactId&gt;azure-core&lt;/artifactId&gt;
      &lt;version&gt;1.20.0&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;!-- Reactor --&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-core&lt;/artifactId&gt;
      &lt;version&gt;3.4.9&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-test&lt;/artifactId&gt;
      &lt;version&gt;3.4.9&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-tools&lt;/artifactId&gt;
      &lt;version&gt;3.4.9&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.addons&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-extra&lt;/artifactId&gt;
      &lt;version&gt;3.4.4&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.addons&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-adapter&lt;/artifactId&gt;
      &lt;version&gt;3.4.4&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.netty&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-netty&lt;/artifactId&gt;
      &lt;version&gt;1.0.10&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.netty&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-netty-core&lt;/artifactId&gt;
      &lt;version&gt;1.0.10&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.netty&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-netty-http&lt;/artifactId&gt;
      &lt;version&gt;1.0.10&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.netty&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-netty-http-brave&lt;/artifactId&gt;
      &lt;version&gt;1.0.10&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.addons&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-pool&lt;/artifactId&gt;
      &lt;version&gt;0.2.6&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.kafka&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-kafka&lt;/artifactId&gt;
      &lt;version&gt;1.3.5&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.rabbitmq&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-rabbitmq&lt;/artifactId&gt;
      &lt;version&gt;1.5.3&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;io.projectreactor.kotlin&lt;/groupId&gt;
      &lt;artifactId&gt;reactor-kotlin-extensions&lt;/artifactId&gt;
      &lt;version&gt;1.1.4&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;io.netty&lt;/groupId&gt;
      &lt;artifactId&gt;netty-handler&lt;/artifactId&gt;
      &lt;version&gt;4.1.67.Final&lt;/version&gt;
  &lt;/dependency&gt;
  
  &lt;dependency&gt;
      &lt;groupId&gt;com.nimbusds&lt;/groupId&gt;
      &lt;artifactId&gt;nimbus-jose-jwt&lt;/artifactId&gt;
      &lt;version&gt;8.20&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  <p>I have upgraded Spring to 2.4.0</p>