@@ -13,9 +13,11 @@ import (
13
13
kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
14
14
15
15
authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization"
16
- authenticationapi "github.com/openshift/origin/pkg/oauthserver/api"
17
16
)
18
17
18
+ const legacyImpersonateUserScopeHeader = "Impersonate-User-Scope"
19
+ const impersonateUserExtraPlusScopesHeader = authenticationv1 .ImpersonateUserExtraHeaderPrefix + authorizationapi .ScopesKey
20
+
19
21
type impersonatingRoundTripper struct {
20
22
user user.Info
21
23
delegate http.RoundTripper
@@ -30,14 +32,16 @@ func (rt *impersonatingRoundTripper) RoundTrip(req *http.Request) (*http.Respons
30
32
req = utilnet .CloneRequest (req )
31
33
req .Header .Del (authenticationv1 .ImpersonateUserHeader )
32
34
req .Header .Del (authenticationv1 .ImpersonateGroupHeader )
33
- req .Header .Del (authenticationapi .ImpersonateUserScopeHeader )
35
+ req .Header .Del (impersonateUserExtraPlusScopesHeader )
36
+ // Also delete legacy scope header just in case it was set
37
+ req .Header .Del (legacyImpersonateUserScopeHeader )
34
38
35
39
req .Header .Set (authenticationv1 .ImpersonateUserHeader , rt .user .GetName ())
36
40
for _ , group := range rt .user .GetGroups () {
37
41
req .Header .Add (authenticationv1 .ImpersonateGroupHeader , group )
38
42
}
39
43
for _ , scope := range rt .user .GetExtra ()[authorizationapi .ScopesKey ] {
40
- req .Header .Add (authenticationapi . ImpersonateUserScopeHeader , scope )
44
+ req .Header .Add (impersonateUserExtraPlusScopesHeader , scope )
41
45
}
42
46
return rt .delegate .RoundTrip (req )
43
47
}
@@ -71,7 +75,7 @@ func NewImpersonatingRESTClient(user user.Info, client restclient.Interface) res
71
75
func (c impersonatingRESTClient ) impersonate (req * restclient.Request ) * restclient.Request {
72
76
req .SetHeader (authenticationv1 .ImpersonateUserHeader , c .user .GetName ())
73
77
req .SetHeader (authenticationv1 .ImpersonateGroupHeader , c .user .GetGroups ()... )
74
- req .SetHeader (authenticationapi . ImpersonateUserScopeHeader , c .user .GetExtra ()[authorizationapi .ScopesKey ]... )
78
+ req .SetHeader (impersonateUserExtraPlusScopesHeader , c .user .GetExtra ()[authorizationapi .ScopesKey ]... )
75
79
return req
76
80
}
77
81
0 commit comments