有问题使用SSLContext将TLSv1更改为TLSv1.2

时间:2017-01-06 15:53:24

标签: java ssl soap salesforce

我正在尝试使用 SSLContext 启用 TLSv1.2 ,我尝试 System.setProperty(“https.protocols”,“TLSv1.2”)< / strong>即可。我想在我的应用程序中为salesforce soap API启用它。问题是当我运行我的示例代码时,TLS版本是 TLSv1 所以我使用我的代码并将其更改为 TLSv1.2 。我的示例代码。

 public static void tls(String tls){
    SSLContext context;

      try {
        System.out.println(SSLContext.getDefault().getProtocol());
        context = SSLContext.getInstance(tls);
        context.init(null, null, null);
        System.out.println(SSLContext.getDefault().getProtocol());
        System.setProperty("https.protocols", tls);
        SSLContext.setDefault(context);
        System.out.println(SSLContext.getDefault().getProtocol());
      } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
      }
}`

当我点击salesforce Soap API时,将TLSv1更改为TLSv1.2后,它使用了Salesforce拒绝的TLSv1,因为我在我的salesforce帐户上禁用了TLSv1。我的salesfoce连接代码

public static void login(){
    try {

         System.out.println("login()"+SSLContext.getDefault().getProtocol());
         String username = "userName";
         String password = "pass";
         String authEndPoint = "https://login.salesforce.com/services/Soap/u/8.0/";
         SoapBindingStub binding = null;
         binding = (SoapBindingStub)new SforceServiceLocator().getSoap();
         binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, authEndPoint);
         LoginResult rs = null;
         rs = binding.login(username, password);
         GetUserInfoResult userInfo =rs.getUserInfo();
         binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, rs.getServerUrl());
         } catch (RemoteException e) {
            System.out.println(e.getMessage());
         } catch (Exception e) {
            e.printStackTrace();
         }
}

我的Salesforce帐户登录活动日志。

  

失败:登录不安全的渠道-SOAP-Partner-8.0-login.salesforce.com-TLS 1.0

我尝试了在谷歌上发现的所有内容,但问题仍然存在。帮助我解决这个问题。

0 个答案:

没有答案