Many firewalls support a means of forming proxy connections other than SOCKS.
When supplying the remote hostname, the name of the firewall is supplied instead. Instead of supplying the remote user as the user, a string is supplied in the form of remoteuser@remotehost.com. The remote password is supplied as normal.
For example:
ftp.setRemoteHost("firewallhostname");
ftp.login("remoteuser@remotehost.com","remotePassword");
Firewalls we have confirmed support this syntax at the time of writing include Check Point Firewall-1 and WinProxy.