mirror of https://github.com/docker/cli.git
Config-file: remove User-Agent from config.json when saving
The config.json allows for setting custom HTTP headers, but given that User-Agent is not customizable, we should remove it from the config before saving; Before this change; $ cat ~/.docker/config.json { "auths": { "https://index.docker.io/v1/": { "auth": "<base64 auth>" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.12 (linux)" } } $ docker logout { "auths": {}, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.12 (linux)" } } After this change: $ cat ~/.docker/config.json { "auths": { "https://index.docker.io/v1/": { "auth": "<base64 auth>" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.12 (linux)" } } $ docker logout Removing login credentials for https://index.docker.io/v1/ $ cat ~/.docker/config.json { "auths": {} } Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
749c62fb4d
commit
3f19902eae
|
@ -169,6 +169,13 @@ func (configFile *ConfigFile) SaveToWriter(writer io.Writer) error {
|
||||||
configFile.AuthConfigs = tmpAuthConfigs
|
configFile.AuthConfigs = tmpAuthConfigs
|
||||||
defer func() { configFile.AuthConfigs = saveAuthConfigs }()
|
defer func() { configFile.AuthConfigs = saveAuthConfigs }()
|
||||||
|
|
||||||
|
// User-Agent header is automatically set, and should not be stored in the configuration
|
||||||
|
for v := range configFile.HTTPHeaders {
|
||||||
|
if strings.EqualFold(v, "User-Agent") {
|
||||||
|
delete(configFile.HTTPHeaders, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data, err := json.MarshalIndent(configFile, "", "\t")
|
data, err := json.MarshalIndent(configFile, "", "\t")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -466,7 +466,27 @@ func TestSave(t *testing.T) {
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
cfg, err := ioutil.ReadFile("test-save")
|
cfg, err := ioutil.ReadFile("test-save")
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.Check(t, is.Equal(string(cfg), "{\n \"auths\": {}\n}"))
|
assert.Equal(t, string(cfg), `{
|
||||||
|
"auths": {}
|
||||||
|
}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSaveCustomHTTPHeaders(t *testing.T) {
|
||||||
|
configFile := New(t.Name())
|
||||||
|
defer os.Remove(t.Name())
|
||||||
|
configFile.HTTPHeaders["CUSTOM-HEADER"] = "custom-value"
|
||||||
|
configFile.HTTPHeaders["User-Agent"] = "user-agent 1"
|
||||||
|
configFile.HTTPHeaders["user-agent"] = "user-agent 2"
|
||||||
|
err := configFile.Save()
|
||||||
|
assert.NilError(t, err)
|
||||||
|
cfg, err := ioutil.ReadFile(t.Name())
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Equal(t, string(cfg), `{
|
||||||
|
"auths": {},
|
||||||
|
"HttpHeaders": {
|
||||||
|
"CUSTOM-HEADER": "custom-value"
|
||||||
|
}
|
||||||
|
}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSaveWithSymlink(t *testing.T) {
|
func TestSaveWithSymlink(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue