Need to support non basic-auth proxies
- Lenguaje dominante
- Java
- Estrellas
- 170
- Forks
- 189
- Merge medio
- 20 h 26 min
- PR fusionados (30 d)
- 22
Descripción
- [x] I have checked that the [SDK documentation][sdk-docs] and [API documentation][api-docs] doesn't solve my issue
### Description of the Issue
The current version of the Box API assumes that the proxy is either unauthenticated or using basic username/password authentication. This breaks in any environment that uses different types of authentication, such as NTLM or Kerberos.
In our case when we try to use our proxy we get a 407 HTTP response.
Ideally the Box API should allow us to substitute in our own proxy configuration. Maybe something based on the Apache HTTPClient which allows using an auth schema registry, along with a credentials provider - this works for us in a standalone test, when not using the Box Java API.
### Versions Used
Java SDK: 1.80_181 on RedHat Linux.
Java: 1.80_181 on RedHat Linux.
### Steps to Reproduce
- Proxy that uses Kerberos and SPNEGO
- Set this to be the proxy used by Box
- Connect to https://api.box.com/2.0/search?query=sales via GET
### Error Message, Including Stack Trace
Status 407 returned by proxy. If everything worked we should get a 401 (since we aren't providing Box auth for this test case).
[sdk-docs]: ./doc
[api-docs]: https://developer.box.com/docs
Guía de contribución
Línea de trabajo
No se nombra ningún archivo de implementación ni ninguna prueba; empieza rastreando cómo el Java SDK configura su proxy y cliente HTTP, usando como referencia el auth schema registry y el credentials provider de Apache HTTPClient mencionados en el issue. Reproduce el problema con un proxy Kerberos/SPNEGO y GET https://api.box.com/2.0/search?query=sales; se considera terminado cuando el SDK acepta la autenticación de proxy configurable y llega a Box, devolviendo 401 en lugar de 407 cuando faltan las credenciales de Box.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- networking
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100