mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #43597 from shoeffner/43596-mask-cifs-passwords
volume: mask password in cifs mount error messages
This commit is contained in:
commit
32f7551e61
3 changed files with 36 additions and 0 deletions
|
@ -361,3 +361,15 @@ func getAddress(opts string) string {
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getPassword finds out a password from options
|
||||||
|
func getPassword(opts string) string {
|
||||||
|
optsList := strings.Split(opts, ",")
|
||||||
|
for i := 0; i < len(optsList); i++ {
|
||||||
|
if strings.HasPrefix(optsList[i], "password=") {
|
||||||
|
passwd := strings.SplitN(optsList[i], "=", 2)[1]
|
||||||
|
return passwd
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
|
@ -29,6 +29,25 @@ func TestGetAddress(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetPassword(t *testing.T) {
|
||||||
|
cases := map[string]string{
|
||||||
|
"password=secret": "secret",
|
||||||
|
" ": "",
|
||||||
|
"password=": "",
|
||||||
|
"password=Tr0ub4dor&3": "Tr0ub4dor&3",
|
||||||
|
"password=correcthorsebatterystaple": "correcthorsebatterystaple",
|
||||||
|
"username=moby,password=secret": "secret",
|
||||||
|
"username=moby,password=secret,addr=11": "secret",
|
||||||
|
"username=moby,addr=11": "",
|
||||||
|
}
|
||||||
|
for optsstring, success := range cases {
|
||||||
|
v := getPassword(optsstring)
|
||||||
|
if v != success {
|
||||||
|
t.Errorf("Test case failed for %s actual: %s expected : %s", optsstring, v, success)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRemove(t *testing.T) {
|
func TestRemove(t *testing.T) {
|
||||||
skip.If(t, runtime.GOOS == "windows", "FIXME: investigate why this test fails on CI")
|
skip.If(t, runtime.GOOS == "windows", "FIXME: investigate why this test fails on CI")
|
||||||
rootDir, err := os.MkdirTemp("", "local-volume-test")
|
rootDir, err := os.MkdirTemp("", "local-volume-test")
|
||||||
|
|
|
@ -124,6 +124,11 @@ func (v *localVolume) mount() error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err := mount.Mount(v.opts.MountDevice, v.path, v.opts.MountType, mountOpts)
|
err := mount.Mount(v.opts.MountDevice, v.path, v.opts.MountType, mountOpts)
|
||||||
|
if err != nil {
|
||||||
|
if password := getPassword(v.opts.MountOpts); password != "" {
|
||||||
|
err = errors.New(strings.Replace(err.Error(), "password="+password, "password=********", 1))
|
||||||
|
}
|
||||||
|
}
|
||||||
return errors.Wrap(err, "failed to mount local volume")
|
return errors.Wrap(err, "failed to mount local volume")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue