| 156 | } |
| 157 | |
| 158 | func TestBasicAuthForProxy407(t *testing.T) { |
| 159 | called := false |
| 160 | accounts := Accounts{"foo": "bar"} |
| 161 | router := New() |
| 162 | router.Use(BasicAuthForProxy(accounts, "")) |
| 163 | router.Any("/*proxyPath", func(c *Context) { |
| 164 | called = true |
| 165 | c.String(http.StatusOK, c.MustGet(AuthProxyUserKey).(string)) |
| 166 | }) |
| 167 | |
| 168 | w := httptest.NewRecorder() |
| 169 | req, _ := http.NewRequest(http.MethodGet, "/test", nil) |
| 170 | req.Header.Set("Proxy-Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte("admin:password"))) |
| 171 | router.ServeHTTP(w, req) |
| 172 | |
| 173 | assert.False(t, called) |
| 174 | assert.Equal(t, http.StatusProxyAuthRequired, w.Code) |
| 175 | assert.Equal(t, "Basic realm=\"Proxy Authorization Required\"", w.Header().Get("Proxy-Authenticate")) |
| 176 | } |