function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Benny (HASE)Benny (HASE) 

Proxy Issue in Sforce Data Loader (NTLM Authentication failure)

  I am using the data loader to upload and download data to and from Salesforce.com. However, we get the error of "(407) Proxy Authentication Required".
 
  For solutions, I have gone through the details in this forum, and find that we need to change the source to include "NTCredentials" in order to let the data loader support NTLM authentication. However, we find that that method "NTCredentials" is already included in the source.
 
  Could anyone inform me how to solve it? Further, from Apache client documentation, the authentication does not support some kinds of ISA server. Is it correct? Kindly correct me if I made any mistakes.
 
Regards,
Benny
Rick.BanisterRick.Banister
On the java command line, you can add 4 parameters that will be passed by java to the proxy server:

http.proxyHost
http.proxyPort
http.proxyUser
http.proxyPassword

The command line parameters are prefixed with a "-D" to tell java to create system properties. The command line would then be:

java -Dhttp.proxyHost [host] -Dhttp.proxyPort [80 or 8080 typically] -Dhttp.proxyUser [NT user] -Dhttp.proxyPassword [password, if required] classpath, etc
benjasikbenjasik
This will work with the 8.0 data loader, coming out with the winter release.  I don't believe it supports NTLM auth today.
cheenathcheenath

Correct, the new data loader is written on top of WSC which uses JDK’s HTTP URL connection. So to setup NTLM based auth, you can set the following system property:

  http.auth.ntlm.domain

HTHs
Benny (HASE)Benny (HASE)
Thanks for your helps, guys....
 
I will try your suggestions.. thanks a lot...
 
Benny
AlexWSFDCAlexWSFDC

NTLM domain setting has to be set on command line as

-Dhttp.auth.ntlm.domain=<NTLM domain name>.

The other 4 proxy settings are all exposed in data loader settings dialog in the UI – proxy host, proxy port, proxy username, and proxy password.  These settings can also be set in the Dataloader config:

  • sfdc.proxyHost
  • sfdc.proxyPort
  • sfdc.proxyUsername
  • sfdc.proxyPassword
Example command line:

java -jar AppExchangeDataLoader.jar -Dhttp.auth.ntlm.domain=XXXX -Dsalesforce.config.dir=”c:\documents and settings\<username>\Application Data\salesforce.com\AppExchange Data Loader 8.0\” com.salesforce.lexiloader.process.LexiLoaderRunner

Message Edited by AlexWSFDC on 01-18-2007 03:04 PM

coolbeastcoolbeast
I added the the following proxy details at the command for a data loader process in the Process file:
 
..\_jvm\bin\java.exe -cp ..\DataLoader.jar -Dsalesforce.config.dir=c:\dataload\conf
com.salesforce.lexiloader.process.ProcessRunner caseProcess -Dhttp.proxyHost=xx.xx.xx.xx -
Dhttp.proxyUser=myuser -Dhttp.proxyPassword=mypassword -Dhttp.proxyHost=80
 
It still results in "Failed to send request to https://www.salesforce.com/services/Soap/u/9.0. However, I am able to connect data loader from the interface with these settings. What could be the issue?
 
Thanks for the help.
 
AlexWSFDCAlexWSFDC
Please make sure you have the correct command line parameters.  While salesforce.config.dir is a JVM parameter, the rest should simply be name=value pairs.  Refer to documentation for correct parameter names (see my last message for proxy related parameters).  Please also note that parameter names changed starting with version 8.0 which would for you to change 7.0 command line.  In addition, your installation should have process.bat in 'bin' directory which gives you a good idea how to run from command line.

Also, after you run your UI version of dataloader, look at the generated config.properties which should provide all the parameters you need to set.  The parameters will be automatically read from config.properties from specified config dir if you run from command line (they provide default param values and are overwritten by values specified in process-conf.xml).

In your case it would be:

..\_jvm\bin\java.exe -cp ..\DataLoader.jar -Dsalesforce.config.dir=c:\dataload\conf
com.salesforce.lexiloader.process.ProcessRunner process.name=caseProcess sfdc.proxyHost=xx.xx.xx.xx sfdc.proxyUsername=myuser sfdc.proxyPassword=mypassword