diff --git a/plugin/http.go b/plugin/http.go index eb2532fce..46c7ccda8 100644 --- a/plugin/http.go +++ b/plugin/http.go @@ -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 } diff --git a/plugin/http_auth.go b/plugin/http_auth.go index e5b78c02b..db17c94cf 100644 --- a/plugin/http_auth.go +++ b/plugin/http_auth.go @@ -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: