lookfirst / sardine

an easy to use webdav client for java
Other
574 stars 184 forks source link

Fix preemptive authentication without explicit port (#285) #348

Closed kkofler closed 4 months ago

kkofler commented 2 years ago

In SardineImpl.enablePreemptiveAuthentication(String, int, int, Charset), do not pass -1 to the HttpHost constructor. The later cache lookup is always done with an explicit port, so port -1 never matches and the entry does nothing. Instead, we need to use the default port explicitly, then it will work, even when connecting with a URL that does not include the port.

Since the other overloads delegate to this one, this fixes all overloads to do the right thing, in particular, the enablePreemptiveAuthentication(String) (hostname-only) and enablePreemptiveAuthentication(URL) (when using a URL without an explicit port) ones.

Fixes #285.

lookfirst commented 2 years ago

@dkocher What do you think?