Can't help with #2, but I am currently using NTLM and WebDav. Here is some sample code that should help:
NTCredentials creds = new NTCredentials(userName, password, hostAdd, "" );
HostConfiguration hostConfig = new HostConfiguration();
hostConfig.setHost(hostAdd); //Not url, just ip address or fully qualified DN
HttpURL host = new HttpURL("http://" + hostUrl);
WebdavResource res = new WebdavResource(host, (Credentials)creds, WebdavResource.DEFAULT, DepthSupport.DEPTH_1);
Hope this helps.