我正在尝试使用 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
我尝试了在谷歌上发现的所有内容,但问题仍然存在。帮助我解决这个问题。