Add Subresource & Name to webhook authorizer.

This commit is contained in:
CJ Cullen 2016-04-18 21:24:01 -07:00
parent 4638f2f355
commit e53aa93836
2 changed files with 17 additions and 8 deletions

View File

@ -151,10 +151,13 @@ func (w *WebhookAuthorizer) Authorize(attr authorizer.Attributes) (err error) {
} }
if attr.IsResourceRequest() { if attr.IsResourceRequest() {
r.Spec.ResourceAttributes = &v1beta1.ResourceAttributes{ r.Spec.ResourceAttributes = &v1beta1.ResourceAttributes{
Namespace: attr.GetNamespace(), Namespace: attr.GetNamespace(),
Verb: attr.GetVerb(), Verb: attr.GetVerb(),
Group: attr.GetAPIGroup(), Group: attr.GetAPIGroup(),
Resource: attr.GetResource(), Version: attr.GetAPIVersion(),
Resource: attr.GetResource(),
Subresource: attr.GetSubresource(),
Name: attr.GetName(),
} }
} else { } else {
r.Spec.NonResourceAttributes = &v1beta1.NonResourceAttributes{ r.Spec.NonResourceAttributes = &v1beta1.NonResourceAttributes{

View File

@ -435,7 +435,10 @@ func TestWebhook(t *testing.T) {
Verb: "GET", Verb: "GET",
Namespace: "kittensandponies", Namespace: "kittensandponies",
APIGroup: "group3", APIGroup: "group3",
APIVersion: "v7beta3",
Resource: "pods", Resource: "pods",
Subresource: "proxy",
Name: "my-pod",
ResourceRequest: true, ResourceRequest: true,
Path: "/foo", Path: "/foo",
}, },
@ -445,10 +448,13 @@ func TestWebhook(t *testing.T) {
User: "jane", User: "jane",
Groups: []string{"group1", "group2"}, Groups: []string{"group1", "group2"},
ResourceAttributes: &v1beta1.ResourceAttributes{ ResourceAttributes: &v1beta1.ResourceAttributes{
Verb: "GET", Verb: "GET",
Namespace: "kittensandponies", Namespace: "kittensandponies",
Group: "group3", Group: "group3",
Resource: "pods", Version: "v7beta3",
Resource: "pods",
Subresource: "proxy",
Name: "my-pod",
}, },
}, },
}, },