15867: Don't pass blank remote param.
authorTom Clegg <tclegg@veritasgenetics.com>
Fri, 22 Nov 2019 17:14:26 +0000 (12:14 -0500)
committerTom Clegg <tclegg@veritasgenetics.com>
Fri, 22 Nov 2019 17:14:26 +0000 (12:14 -0500)
fixes #15867

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

lib/controller/federation/conn.go
lib/controller/federation/login_test.go

index 3829d0a40adab273f7ea126ac8ff40d92527fc46..3a439eb7d4c2d9339cbdc615a52a06d0d8dce4cd 100644 (file)
@@ -197,10 +197,13 @@ func (conn *Conn) Login(ctx context.Context, options arvados.LoginOptions) (arva
                if err != nil {
                        return arvados.LoginResponse{}, fmt.Errorf("internal error getting redirect target: %s", err)
                }
-               target.RawQuery = url.Values{
+               params := url.Values{
                        "return_to": []string{options.ReturnTo},
-                       "remote":    []string{options.Remote},
-               }.Encode()
+               }
+               if options.Remote != "" {
+                       params.Set("remote", options.Remote)
+               }
+               target.RawQuery = params.Encode()
                return arvados.LoginResponse{
                        RedirectLocation: target.String(),
                }, nil
index e001014e2181a142cbab2bd4ad65343578f5e77d..e294df7d89f5e39d2467544ee49623e4ecda5fcc 100644 (file)
@@ -26,7 +26,9 @@ func (s *FederationSuite) TestDeferToLoginCluster(c *check.C) {
                c.Check(err, check.IsNil)
                c.Check(target.Host, check.Equals, s.cluster.RemoteClusters["zhome"].Host)
                c.Check(target.Scheme, check.Equals, "http")
-               c.Check(target.Query().Get("remote"), check.Equals, remote)
                c.Check(target.Query().Get("return_to"), check.Equals, returnTo)
+               c.Check(target.Query().Get("remote"), check.Equals, remote)
+               _, remotePresent := target.Query()["remote"]
+               c.Check(remotePresent, check.Equals, remote != "")
        }
 }