Http: use password as fallback for bearer token

This commit is contained in:
andig 2025-05-04 12:35:49 +02:00
parent 8b09892128
commit 523e3eeffb
2 changed files with 7 additions and 2 deletions

View file

@ -75,7 +75,7 @@ func NewHTTPPluginFromConfig(ctx context.Context, other map[string]interface{})
p.getter = defaultGetters(p, cc.Scale)
if cc.Auth.Type != "" || cc.Auth.Source != "" {
transport, err := cc.Auth.Transport(ctx, p.Client.Transport)
transport, err := cc.Auth.Transport(ctx, log, p.Client.Transport)
if err != nil {
return nil, err
}

View file

@ -7,6 +7,7 @@ import (
"strings"
"github.com/evcc-io/evcc/plugin/auth"
"github.com/evcc-io/evcc/util"
"github.com/evcc-io/evcc/util/transport"
"github.com/jpfielding/go-http-digest/pkg/digest"
)
@ -19,7 +20,7 @@ type Auth struct {
Other map[string]any `mapstructure:",remain"`
}
func (p *Auth) Transport(ctx context.Context, base http.RoundTripper) (http.RoundTripper, error) {
func (p *Auth) Transport(ctx context.Context, log *util.Logger, base http.RoundTripper) (http.RoundTripper, error) {
switch strings.ToLower(p.Type) {
case "digest":
return digest.NewTransport(p.User, p.Password, base), nil
@ -28,6 +29,10 @@ func (p *Auth) Transport(ctx context.Context, base http.RoundTripper) (http.Roun
return transport.BasicAuth(p.User, p.Password, base), nil
case "bearer":
if p.Token == "" && p.Password != "" {
p.Token = p.Password
log.WARN.Println("using password for bearer auth is deprecated, use token instead")
}
return transport.BearerAuth(p.Token, base), nil
default: