github.com/cloudfoundry-attic/ltc@v0.0.0-20151123212628-098adc7919fc/blob_store/dav_blob_store/blob_store_verifier.go (about) 1 package dav_blob_store 2 3 import ( 4 "fmt" 5 "net/http" 6 "net/url" 7 8 config_package "github.com/cloudfoundry-incubator/ltc/config" 9 ) 10 11 type Verifier struct{} 12 13 func (Verifier) Verify(config *config_package.Config) (authorized bool, err error) { 14 blobStoreURL := url.URL{ 15 Scheme: "http", 16 Host: fmt.Sprintf("%s:%s", config.BlobStore().Host, config.BlobStore().Port), 17 User: url.UserPassword(config.BlobStore().Username, config.BlobStore().Password), 18 } 19 20 baseURL := &url.URL{ 21 Scheme: blobStoreURL.Scheme, 22 Host: blobStoreURL.Host, 23 User: blobStoreURL.User, 24 Path: "/blobs/", 25 } 26 27 req, err := http.NewRequest("PROPFIND", baseURL.String(), nil) 28 if err != nil { 29 return false, err 30 } 31 32 req.Header.Add("Depth", "1") 33 resp, err := http.DefaultClient.Do(req) 34 if err != nil { 35 return false, err 36 } 37 38 defer resp.Body.Close() 39 40 return resp.StatusCode == 207, err 41 }