2023-06-20 22:15:12 +01:00

35 lines
576 B
Go

package auth
import (
"net/http"
)
type AuthProvider interface {
IsAllowed(*http.Request) bool
}
func NewEmptyAuthProvider() AuthProvider {
return &emptyAuthProvider{}
}
type emptyAuthProvider struct {
}
func (p *emptyAuthProvider) IsAllowed(request *http.Request) bool {
return true
}
type compositeAuthProvider struct {
providers []AuthProvider
}
func (p *compositeAuthProvider) IsAllowed(request *http.Request) bool {
for i := 0; i < len(p.providers); i++ {
provider := p.providers[i]
if provider.IsAllowed(request) {
return true
}
}
return false
}