59 lines
1 KiB
Markdown
59 lines
1 KiB
Markdown
# authdav - a x/net/webdav wrapper
|
|
|
|
Wrappers:
|
|
* HTTP Basic Auth wrapper for `webdav.Handler`
|
|
* write only once FileSystem wrapper for `webdav.FileSystem`
|
|
|
|
## Usage
|
|
|
|
### HTTP Basic Auth
|
|
|
|
```
|
|
package main
|
|
|
|
import (
|
|
"git.giftfish.de/ston1th/authdav"
|
|
"golang.org/x/net/webdav"
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
type exampleAuthenticator struct {}
|
|
|
|
func (exampleAuthenticator) BasicAuth(user, password string) bool {
|
|
if user == "user" && password == "password" {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func main() {
|
|
auth := exampleAuthenticator{}
|
|
handler := authdav.NewWebdavBasicAuth("", webdav.Dir("."), nil, nil, auth, "webdav with basic auth")
|
|
log.Fatal(http.ListenAndServe(":8080", handler))
|
|
}
|
|
```
|
|
|
|
### Write Only
|
|
|
|
```
|
|
package main
|
|
|
|
import (
|
|
"git.giftfish.de/ston1th/authdav"
|
|
"golang.org/x/net/webdav"
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
func main() {
|
|
fs := authdav.NewWriteOnlyOnceFileSystem(webdav.Dir("."))
|
|
handler := &webdav.Handler{
|
|
Prefix: "",
|
|
FileSystem: fs,
|
|
LockSystem: webdav.NewMemLS(),
|
|
Logger: nil,
|
|
}
|
|
log.Fatal(http.ListenAndServe(":8080", handler))
|
|
}
|
|
```
|