|
|
@@ -226,11 +226,11 @@ func TestMiddlewareContext(t *testing.T) {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
- middlewareScenario("When auth_proxy is enabled and request RemoteAddr is not trusted", func(sc *scenarioContext) {
|
|
|
+ middlewareScenario("When auth_proxy is enabled and IPv4 request RemoteAddr is not trusted", func(sc *scenarioContext) {
|
|
|
setting.AuthProxyEnabled = true
|
|
|
setting.AuthProxyHeaderName = "X-WEBAUTH-USER"
|
|
|
setting.AuthProxyHeaderProperty = "username"
|
|
|
- setting.AuthProxyWhitelist = "192.168.1.1, 192.168.2.1"
|
|
|
+ setting.AuthProxyWhitelist = "192.168.1.1, 2001::23"
|
|
|
|
|
|
sc.fakeReq("GET", "/")
|
|
|
sc.req.Header.Add("X-WEBAUTH-USER", "torkelo")
|
|
|
@@ -239,6 +239,24 @@ func TestMiddlewareContext(t *testing.T) {
|
|
|
|
|
|
Convey("should return 407 status code", func() {
|
|
|
So(sc.resp.Code, ShouldEqual, 407)
|
|
|
+ So(sc.resp.Body.String(), ShouldContainSubstring, "Request for user (torkelo) from 192.168.3.1 is not from the authentication proxy")
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ middlewareScenario("When auth_proxy is enabled and IPv6 request RemoteAddr is not trusted", func(sc *scenarioContext) {
|
|
|
+ setting.AuthProxyEnabled = true
|
|
|
+ setting.AuthProxyHeaderName = "X-WEBAUTH-USER"
|
|
|
+ setting.AuthProxyHeaderProperty = "username"
|
|
|
+ setting.AuthProxyWhitelist = "192.168.1.1, 2001::23"
|
|
|
+
|
|
|
+ sc.fakeReq("GET", "/")
|
|
|
+ sc.req.Header.Add("X-WEBAUTH-USER", "torkelo")
|
|
|
+ sc.req.RemoteAddr = "[2001:23]:12345"
|
|
|
+ sc.exec()
|
|
|
+
|
|
|
+ Convey("should return 407 status code", func() {
|
|
|
+ So(sc.resp.Code, ShouldEqual, 407)
|
|
|
+ So(sc.resp.Body.String(), ShouldContainSubstring, "Request for user (torkelo) from 2001:23 is not from the authentication proxy")
|
|
|
})
|
|
|
})
|
|
|
|
|
|
@@ -246,7 +264,7 @@ func TestMiddlewareContext(t *testing.T) {
|
|
|
setting.AuthProxyEnabled = true
|
|
|
setting.AuthProxyHeaderName = "X-WEBAUTH-USER"
|
|
|
setting.AuthProxyHeaderProperty = "username"
|
|
|
- setting.AuthProxyWhitelist = "192.168.1.1, 192.168.2.1"
|
|
|
+ setting.AuthProxyWhitelist = "192.168.1.1, 2001::23"
|
|
|
|
|
|
bus.AddHandler("test", func(query *m.GetSignedInUserQuery) error {
|
|
|
query.Result = &m.SignedInUser{OrgId: 4, UserId: 33}
|
|
|
@@ -255,7 +273,7 @@ func TestMiddlewareContext(t *testing.T) {
|
|
|
|
|
|
sc.fakeReq("GET", "/")
|
|
|
sc.req.Header.Add("X-WEBAUTH-USER", "torkelo")
|
|
|
- sc.req.RemoteAddr = "192.168.2.1:12345"
|
|
|
+ sc.req.RemoteAddr = "[2001::23]:12345"
|
|
|
sc.exec()
|
|
|
|
|
|
Convey("Should init context with user info", func() {
|