Como lidar com a autenticação HTTP usando HttpURLConnection?

Estou escrevendo um cliente Java que POSTs para um servidor HTTP que requerautenticação.
Eu tenho que suportar pelo menos os três métodos de autenticação a seguir: Básico, Digest ou Negociar. Além disso, o POST pode ser muito grande (acima de 2 MB), então eu preciso usar o streaming. Conforme documentado paraHttpURLConnection

Quando o fluxo de saída está ativado, a autenticação e o redirecionamento não podem ser manipulados automaticamente. Uma HttpRetryException será lançada ao ler a resposta se autenticação ou redirecionamento forem necessários.

Então, eu preciso lidar com a autenticação sozinho. Eu procurei, e procurei novamente, uma maneira de empregar as classes, já codificadas, mas não encontrei nenhuma maneira ...

Eu poderia apenas pegar as fontes necessárias deaqui (como eles são GPLv2 com exceção de Classpath). Este é o caminho certo?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion