Fix CORS by allowing everything
This commit is contained in:
parent
224cb5e217
commit
75b27becf2
2 changed files with 51 additions and 14 deletions
30
cors.go
Normal file
30
cors.go
Normal file
|
@ -0,0 +1,30 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type CorsAllowAllOrigins struct {
|
||||
AndThen http.Handler
|
||||
}
|
||||
|
||||
func (c CorsAllowAllOrigins) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Add("Access-Control-Allow-Origin", "*")
|
||||
w.Header().Add("Access-Control-Allow-Methods", "*")
|
||||
w.Header().Add("Access-Control-Allow-Headers", "*")
|
||||
c.AndThen.ServeHTTP(w, r)
|
||||
}
|
||||
|
||||
type OptionsNoError struct {
|
||||
Error ErrorHandler
|
||||
}
|
||||
|
||||
func (c OptionsNoError) WithError(err error) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == "OPTIONS" {
|
||||
w.WriteHeader(200)
|
||||
} else {
|
||||
c.Error.WithError(err).ServeHTTP(w, r)
|
||||
}
|
||||
})
|
||||
}
|
23
main.go
23
main.go
|
@ -3,17 +3,18 @@ package main
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"git.deuxfleurs.fr/Deuxfleurs/bagage/s3"
|
||||
"git.deuxfleurs.fr/Deuxfleurs/bagage/sftp"
|
||||
"github.com/minio/minio-go/v7"
|
||||
"github.com/minio/minio-go/v7/pkg/credentials"
|
||||
"golang.org/x/crypto/ssh"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.deuxfleurs.fr/Deuxfleurs/bagage/s3"
|
||||
"git.deuxfleurs.fr/Deuxfleurs/bagage/sftp"
|
||||
"github.com/minio/minio-go/v7"
|
||||
"github.com/minio/minio-go/v7/pkg/credentials"
|
||||
"golang.org/x/crypto/ssh"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -176,11 +177,16 @@ func handleSSHConn(nConn net.Conn, dconfig *Config, config *ssh.ServerConfig) {
|
|||
func httpServer(config *Config, done chan error) {
|
||||
// Assemble components to handle WebDAV requests
|
||||
http.Handle(config.DavPath+"/",
|
||||
BasicAuthExtract{
|
||||
OnNotFound: NotAuthorized{},
|
||||
CorsAllowAllOrigins{
|
||||
AndThen: BasicAuthExtract{
|
||||
OnNotFound: OptionsNoError{
|
||||
NotAuthorized{},
|
||||
},
|
||||
OnCreds: LdapPreAuth{
|
||||
WithConfig: config,
|
||||
OnWrongPassword: NotAuthorized{},
|
||||
OnWrongPassword: OptionsNoError{
|
||||
Error: NotAuthorized{},
|
||||
},
|
||||
OnFailure: InternalError{},
|
||||
OnCreds: S3Auth{
|
||||
WithConfig: config,
|
||||
|
@ -190,6 +196,7 @@ func httpServer(config *Config, done chan error) {
|
|||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
if err := http.ListenAndServe(config.HttpListen, nil); err != nil {
|
||||
|
|
Loading…
Reference in a new issue