| # This test exercises the GOAUTH mechanism for specifying |
| # credentials passed in HTTPS requests to VCS servers. |
| # See golang.org/issue/26232 |
| |
| env GOPROXY=direct |
| env GOSUMDB=off |
| |
| # GOAUTH should default to netrc behavior. |
| # Without credentials, downloading a module from a path that requires HTTPS |
| # basic auth should fail. |
| # Override default location of $HOME/.netrc |
| env NETRC=$WORK/empty |
| ! go get vcs-test.golang.org/auth/or401 |
| stderr '^\tserver response: ACCESS DENIED, buddy$' |
| |
| # With credentials from a netrc file, it should succeed. |
| env NETRC=$WORK/netrc |
| go get vcs-test.golang.org/auth/or401 |
| |
| # GOAUTH=off should result in failures. |
| env GOAUTH='off' |
| # Without credentials, downloading a module from a path that requires HTTPS |
| # basic auth should fail. |
| env NETRC=$WORK/empty |
| ! go get vcs-test.golang.org/auth/or401 |
| stderr '^\tserver response: ACCESS DENIED, buddy$' |
| |
| # GOAUTH='off' should ignore credentials from a valid netrc file. |
| env GOAUTH='off' |
| env NETRC=$WORK/netrc |
| ! go get vcs-test.golang.org/auth/or401 |
| stderr '^\tserver response: ACCESS DENIED, buddy$' |
| |
| # GOAUTH=off cannot be combined with other authentication commands |
| env GOAUTH='off; netrc' |
| env NETRC=$WORK/netrc |
| ! go get vcs-test.golang.org/auth/or401 |
| stderr 'GOAUTH=off cannot be combined with other authentication commands \(GOAUTH=off; netrc\)' |
| |
| # An unset GOAUTH should default to netrc. |
| env GOAUTH= |
| # Without credentials, downloading a module from a path that requires HTTPS |
| # basic auth should fail. |
| env NETRC=$WORK/empty |
| ! go get vcs-test.golang.org/auth/or401 |
| stderr '^\tserver response: ACCESS DENIED, buddy$' |
| |
| # With credentials from a netrc file, it should succeed. |
| env NETRC=$WORK/netrc |
| go get vcs-test.golang.org/auth/or401 |
| |
| # A missing file should be fail as well. |
| env NETRC=$WORK/missing |
| ! go get vcs-test.golang.org/auth/or401 |
| stderr '^\tserver response: ACCESS DENIED, buddy$' |
| |
| [short] skip 'requires a remote vcs lookup' |
| [!git] skip |
| # An unset home directory should warn the user but not cause a failure. |
| env NETRC= |
| env HOME= |
| env USERPROFILE= |
| env home= |
| go get -x vcs-test.golang.org/git/emptytest.git |
| [!GOOS:windows] [!GOOS:plan9] stderr 'GOAUTH=netrc: \$HOME is not defined' |
| [GOOS:windows] stderr 'GOAUTH=netrc: \%userprofile\% is not defined' |
| [GOOS:plan9] stderr 'GOAUTH=netrc: \$home is not defined' |
| |
| -- go.mod -- |
| module private.example.com |
| -- $WORK/empty -- |
| -- $WORK/netrc -- |
| machine vcs-test.golang.org |
| login aladdin |
| password opensesame |
| # first one should override this one |
| machine vcs-test.golang.org |
| login aladdin |
| password ignored |