El Explorador de archivos de Windows "Map Network Drive" genera una solicitud de OPCIONES HTTP que no está autorizada

El Explorador de archivos de Windows "Map Network Drive" genera una solicitud de OPCIONES HTTP que no está autorizada

Estamos desarrollando un servidor WebDAV en Java que nos gustaría que sirviera como cliente del Explorador de archivos de Windows. Puedo ejecutar el siguiente curlcomando que da una buena respuesta:

>curl -i -X OPTIONS http://localhost:8080/storage-explorer/rest/dav -u joe:JoeSchmo1!

Si intento "Asignar unidad de red" usando el Explorador de archivos mientras especifico el mismo usuario y contraseña que en el curlcomando, obtengo una respuesta "no autorizada".

ingrese la descripción de la imagen aquí

Estamos desarrollando un servidor WebDAV en Java que nos gustaría que sirviera como cliente del Explorador de archivos de Windows. Puedo ejecutar el siguiente comando curl que da una buena respuesta:

curl -i -X ​​OPCIONES http://localhost:8080/storage-explorer/rest/dav -u joe:JoeSchmo1! Si intento "Asignar unidad de red" usando el Explorador de archivos mientras especifico el mismo usuario y contraseña que en el comando curl, obtengo una respuesta "no autorizada".

Examiné las solicitudes y respuestas usando WireShark. Para curl, veo:

OPTIONS /storage-explorer/rest/dav HTTP/1.1
Host: localhost:8080
Authorization: Basic am9lOkpvZVNjaG1vMSE=
User-Agent: curl/8.4.0
Accept: */*

HTTP/1.1 200 OK
Expires: 0
Cache-Control: no-cache, no-store, must-revalidate
Server: milton.io-3.0.0.1
Pragma: no-cache
DAV: 1, 2
Accept-Ranges: bytes
Date: Wed, 27 Mar 2024 17:46:05 GMT
Allow: HEAD, PROPFIND, REPORT, OPTIONS, HEAD, PROPPATCH
Connection: keep-alive
Content-Length: 0
MS-Author-Via: DAV

Para el Explorador de archivos, veo:

OPTIONS /storage-explorer/rest/dav HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/10.0.19045
translate: f
Host: localhost:8080

HTTP/1.1 401 Unauthorized
Expires: 0
Connection: keep-alive
WWW-Authenticate: Basic realm="ApplicationRealm"
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Content-Type: text/html;charset=UTF-8
Content-Length: 71
Date: Wed, 27 Mar 2024 18:06:34 GMT

<html><head><title>Error</title></head><body>Unauthorized</body></html>

Otra rareza es que puedo ver la actividad en el registro de nuestra aplicación web para la curlsolicitud, pero no para la solicitud del Explorador de archivos.

¿Cuál es la diferencia importante entre las dos solicitudes de OPCIONES que provoca las diferentes respuestas? ¿Qué puedo hacer desde el Explorador de archivos para que genere una solicitud aceptable, por ejemplo, una equivalente a curl's?

Basado en estoartículo, Solía regedit​​​​modificar la HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevelconfiguración para permitir http, pero no hizo ninguna diferencia.

Estoy abierto a cualquier sugerencia de depuración.

Respuesta1

La diferencia importante es esta parte:

Authorization: Basic am9lOkpvZVNjaG1vMSE=

La cadena después de la palabra "Básico" es una codificación base64 de su nombre de usuario y contraseña. Evidentemente su servidor WebDAV no permite el acceso anónimo a este recurso.

No puedo saber cómo están programados su página y el código del servidor, pero evidentemente el nombre de usuario/contraseña ingresados ​​no se pasan al servidor como dentro de la solicitud generada.

Una alternativa a pasar el usuario/contraseña a través de un Authorization encabezado es hacerlo mediante parámetros de consulta agregados a la URL, como http://example.com?u=username,p=password. Otra opción es: .http://username:[email protected]/

Su servidor WebDAV debe estar programado para comprender dichos parámetros.

información relacionada