X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/58f2b95b4d10037cfd59972838a40dd0af9373e9..e1d9921132ec1f414aba996609bab2f46384e413:/lib/controller/localdb/container_gateway.go?ds=sidebyside diff --git a/lib/controller/localdb/container_gateway.go b/lib/controller/localdb/container_gateway.go index 8a70dc8e81..6cf787fcb4 100644 --- a/lib/controller/localdb/container_gateway.go +++ b/lib/controller/localdb/container_gateway.go @@ -56,6 +56,13 @@ var ( func (conn *Conn) ContainerLog(ctx context.Context, opts arvados.ContainerLogOptions) (http.Handler, error) { ctr, err := conn.railsProxy.ContainerGet(ctx, arvados.GetOptions{UUID: opts.UUID, Select: []string{"uuid", "state", "gateway_address", "log"}}) if err != nil { + if se := httpserver.HTTPStatusError(nil); errors.As(err, &se) && se.HTTPStatus() == http.StatusUnauthorized { + // Hint to WebDAV client that we accept HTTP basic auth. + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Www-Authenticate", "Basic realm=\"collections\"") + w.WriteHeader(http.StatusUnauthorized) + }), nil + } return nil, err } if ctr.GatewayAddress == "" ||