0
package org.apache.commons.net.util;

import java.security.GeneralSecurityException;
import java.security.KeyStore;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;

public final class TrustManagerUtils {

   private static final X509TrustManager ACCEPT_ALL=null;
   private static final X509TrustManager CHECK_SERVER_VALIDITY=null;
   private static final X509Certificate[] EMPTY_X509CERTIFICATE_ARRAY=null;


   static void method_59() {
      EMPTY_X509CERTIFICATE_ARRAY = new X509Certificate[0];
      TrustManagerUtils.TrustManager var10000 = new TrustManagerUtils.TrustManager;
      var10000.method_400(false);
      ACCEPT_ALL = var10000;
      var10000 = new TrustManagerUtils.TrustManager;
      var10000.method_400(true);
      CHECK_SERVER_VALIDITY = var10000;
   }


   public void method_60() {
    //.method_60();
   }

   public static X509TrustManager getAcceptAllTrustManager() {
      return ACCEPT_ALL;
   }

   public static X509TrustManager getDefaultTrustManager(KeyStore var0) throws GeneralSecurityException {
      TrustManagerFactory var1 = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
      var1.init(var0);
      return (X509TrustManager)var1.getTrustManagers()[0];
   }

   public static X509TrustManager getValidateServerCertificateTrustManager() {
      return CHECK_SERVER_VALIDITY;
   }

   private static class TrustManager implements X509TrustManager {

      private boolean checkServerValidity;



      void method_400(boolean var1) {

         this.checkServerValidity = var1;
      }

      public void checkClientTrusted(X509Certificate[] var1, String var2) {}

      public void checkServerTrusted(X509Certificate[] var1, String var2) throws CertificateException {
         if(this.checkServerValidity) {
            for(int var3 = 0; var3 < var1.length; ++var3) {
               var1[var3].checkValidity();
            }
         }

      }

      public X509Certificate[] getAcceptedIssuers() {
         return TrustManagerUtils.EMPTY_X509CERTIFICATE_ARRAY;
      }
   }
}

线上的错误

 TrustManagerUtils.TrustManager var10000 = new TrustManagerUtils.TrustManager;
  var10000.method_400(false);
  ACCEPT_ALL = var10000;
  var10000 = new TrustManagerUtils.TrustManager;
  var10000.method_400(true);

它表明它无法返回我创建的新临时类并在完成带来值时交换回来。我想将类从 trustmanager 回调到 temp var1000 以使用方法 _400 但它不能通过。

4

1 回答 1

0

首先,这不是创建对象的方法。

TrustManagerUtils.TrustManager var10000 = new TrustManagerUtils.TrustManager;

你必须像这样调用构造函数

TrustManagerUtils.TrustManager var10000 = new TrustManagerUtils.TrustManager();

修复它,也许它会起作用,因为错误消息有时会误导......

于 2013-05-26T16:54:20.940 回答