package requestheader
import (
"net/http"
"github.com/openshift/origin/pkg/auth/api"
)
type Config struct {
UserNameHeader string
}
func NewDefaultConfig() *Config {
return &Config{
UserNameHeader: "X-Remote-User",
}
}
type Authenticator struct {
config *Config
}
func NewAuthenticator(config *Config) *Authenticator {
return &Authenticator{config}
}
func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
name := req.Header.Get(a.config.UserNameHeader)
if name == "" {
return nil, false, nil
}
user := &api.DefaultUserInfo{
Name: name,
}
return user, true, nil
}