mirror of
https://github.com/lightninglabs/aperture.git
synced 2025-12-18 17:44:20 +01:00
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package auth
|
|
|
|
import "net/http"
|
|
|
|
// MockAuthenticator is a mock implementation of the authenticator.
|
|
type MockAuthenticator struct{}
|
|
|
|
// A compile-time constraint to ensure MockAuthenticator implements
|
|
// Authenticator.
|
|
var _ Authenticator = (*MockAuthenticator)(nil)
|
|
|
|
// NewMockAuthenticator returns a new MockAuthenticator instance.
|
|
func NewMockAuthenticator() *MockAuthenticator {
|
|
return &MockAuthenticator{}
|
|
}
|
|
|
|
// Accept returns whether or not the header successfully authenticates the user
|
|
// to a given backend service.
|
|
func (a MockAuthenticator) Accept(header *http.Header, _ string) bool {
|
|
if header.Get("Authorization") != "" {
|
|
return true
|
|
}
|
|
if header.Get("Grpc-Metadata-macaroon") != "" {
|
|
return true
|
|
}
|
|
if header.Get("Macaroon") != "" {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// FreshChallengeHeader returns a header containing a challenge for the user to
|
|
// complete.
|
|
func (a MockAuthenticator) FreshChallengeHeader(r *http.Request,
|
|
_ string, _ int64) (http.Header, error) {
|
|
|
|
header := r.Header
|
|
header.Set(
|
|
"WWW-Authenticate", "LSAT macaroon=\"AGIAJEemVQUTEyNCR0exk7ek9"+
|
|
"0Cg==\", invoice=\"lnbc1500n1pw5kjhmpp5fu6xhthlt2vucm"+
|
|
"zkx6c7wtlh2r625r30cyjsfqhu8rsx4xpz5lwqdpa2fjkzep6yptk"+
|
|
"sct5yp5hxgrrv96hx6twvusycn3qv9jx7ur5d9hkugr5dusx6cqzp"+
|
|
"gxqr23s79ruapxc4j5uskt4htly2salw4drq979d7rcela9wz02el"+
|
|
"hypmdzmzlnxuknpgfyfm86pntt8vvkvffma5qc9n50h4mvqhngadq"+
|
|
"y3ngqjcym5a\"")
|
|
return header, nil
|
|
}
|