| ... | ... |
@@ -1,13 +1,8 @@ |
| 1 | 1 |
package api |
| 2 | 2 |
|
| 3 |
-// TODO: Add display name to common meta? |
|
| 4 |
-type UserInfo interface {
|
|
| 5 |
- GetName() string |
|
| 6 |
- GetUID() string |
|
| 7 |
- GetGroups() []string |
|
| 8 |
- GetScope() string |
|
| 9 |
- GetExtra() map[string]string |
|
| 10 |
-} |
|
| 3 |
+import ( |
|
| 4 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 5 |
+) |
|
| 11 | 6 |
|
| 12 | 7 |
// UserIdentityInfo contains information about an identity. Identities are distinct from users. An authentication server of |
| 13 | 8 |
// some kind (like oauth for example) describes an identity. Our system controls the users mapped to this identity. |
| ... | ... |
@@ -20,11 +15,11 @@ type UserIdentityInfo interface {
|
| 20 | 20 |
GetExtra() map[string]string |
| 21 | 21 |
} |
| 22 | 22 |
|
| 23 |
-// UserIdentityMapper maps UserIdentities into UserInfo objects to allow different user abstractions within auth code. |
|
| 23 |
+// UserIdentityMapper maps UserIdentities into user.Info objects to allow different user abstractions within auth code. |
|
| 24 | 24 |
type UserIdentityMapper interface {
|
| 25 | 25 |
// UserFor takes an identity, ignores the passed identity.Provider, forces the provider value to some other value and then creates the mapping. |
| 26 |
- // It returns the corresponding UserInfo |
|
| 27 |
- UserFor(identityInfo UserIdentityInfo) (UserInfo, error) |
|
| 26 |
+ // It returns the corresponding user.Info |
|
| 27 |
+ UserFor(identityInfo UserIdentityInfo) (user.Info, error) |
|
| 28 | 28 |
} |
| 29 | 29 |
|
| 30 | 30 |
type Client interface {
|
| ... | ... |
@@ -41,34 +36,6 @@ type Grant struct {
|
| 41 | 41 |
RedirectURI string |
| 42 | 42 |
} |
| 43 | 43 |
|
| 44 |
-type DefaultUserInfo struct {
|
|
| 45 |
- Name string |
|
| 46 |
- UID string |
|
| 47 |
- Groups []string |
|
| 48 |
- Scope string |
|
| 49 |
- Extra map[string]string |
|
| 50 |
-} |
|
| 51 |
- |
|
| 52 |
-func (i *DefaultUserInfo) GetName() string {
|
|
| 53 |
- return i.Name |
|
| 54 |
-} |
|
| 55 |
- |
|
| 56 |
-func (i *DefaultUserInfo) GetUID() string {
|
|
| 57 |
- return i.UID |
|
| 58 |
-} |
|
| 59 |
- |
|
| 60 |
-func (i *DefaultUserInfo) GetGroups() []string {
|
|
| 61 |
- return i.Groups |
|
| 62 |
-} |
|
| 63 |
- |
|
| 64 |
-func (i *DefaultUserInfo) GetScope() string {
|
|
| 65 |
- return i.Scope |
|
| 66 |
-} |
|
| 67 |
- |
|
| 68 |
-func (i *DefaultUserInfo) GetExtra() map[string]string {
|
|
| 69 |
- return i.Extra |
|
| 70 |
-} |
|
| 71 |
- |
|
| 72 | 44 |
type DefaultUserIdentityInfo struct {
|
| 73 | 45 |
UserName string |
| 74 | 46 |
ProviderName string |
| ... | ... |
@@ -3,31 +3,32 @@ package authenticator |
| 3 | 3 |
import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
|
| 6 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 6 | 7 |
"github.com/openshift/origin/pkg/auth/api" |
| 7 | 8 |
) |
| 8 | 9 |
|
| 9 | 10 |
type Token interface {
|
| 10 |
- AuthenticateToken(token string) (api.UserInfo, bool, error) |
|
| 11 |
+ AuthenticateToken(token string) (user.Info, bool, error) |
|
| 11 | 12 |
} |
| 12 | 13 |
|
| 13 | 14 |
type Request interface {
|
| 14 |
- AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) |
|
| 15 |
+ AuthenticateRequest(req *http.Request) (user.Info, bool, error) |
|
| 15 | 16 |
} |
| 16 | 17 |
|
| 17 | 18 |
type Password interface {
|
| 18 |
- AuthenticatePassword(user, password string) (api.UserInfo, bool, error) |
|
| 19 |
+ AuthenticatePassword(user, password string) (user.Info, bool, error) |
|
| 19 | 20 |
} |
| 20 | 21 |
|
| 21 | 22 |
type Assertion interface {
|
| 22 |
- AuthenticateAssertion(assertionType, data string) (api.UserInfo, bool, error) |
|
| 23 |
+ AuthenticateAssertion(assertionType, data string) (user.Info, bool, error) |
|
| 23 | 24 |
} |
| 24 | 25 |
|
| 25 | 26 |
type Client interface {
|
| 26 |
- AuthenticateClient(client api.Client) (api.UserInfo, bool, error) |
|
| 27 |
+ AuthenticateClient(client api.Client) (user.Info, bool, error) |
|
| 27 | 28 |
} |
| 28 | 29 |
|
| 29 |
-type RequestFunc func(req *http.Request) (api.UserInfo, bool, error) |
|
| 30 |
+type RequestFunc func(req *http.Request) (user.Info, bool, error) |
|
| 30 | 31 |
|
| 31 |
-func (f RequestFunc) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 32 |
+func (f RequestFunc) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 32 | 33 |
return f(req) |
| 33 | 34 |
} |
| ... | ... |
@@ -5,6 +5,7 @@ import ( |
| 5 | 5 |
|
| 6 | 6 |
"github.com/golang/glog" |
| 7 | 7 |
|
| 8 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 9 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| 9 | 10 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 10 | 11 |
) |
| ... | ... |
@@ -20,7 +21,7 @@ func New(identityMapper authapi.UserIdentityMapper) authenticator.Password {
|
| 20 | 20 |
} |
| 21 | 21 |
|
| 22 | 22 |
// AuthenticatePassword approves any login attempt with non-blank username and password |
| 23 |
-func (a alwaysAcceptPasswordAuthenticator) AuthenticatePassword(username, password string) (authapi.UserInfo, bool, error) {
|
|
| 23 |
+func (a alwaysAcceptPasswordAuthenticator) AuthenticatePassword(username, password string) (user.Info, bool, error) {
|
|
| 24 | 24 |
if username == "" || password == "" {
|
| 25 | 25 |
return nil, false, nil |
| 26 | 26 |
} |
| ... | ... |
@@ -9,7 +9,7 @@ import ( |
| 9 | 9 |
|
| 10 | 10 |
"github.com/golang/glog" |
| 11 | 11 |
|
| 12 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 12 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 13 | 13 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| 14 | 14 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 15 | 15 |
) |
| ... | ... |
@@ -46,7 +46,7 @@ func New(url string, mapper authapi.UserIdentityMapper) authenticator.Password {
|
| 46 | 46 |
return &Authenticator{url, mapper}
|
| 47 | 47 |
} |
| 48 | 48 |
|
| 49 |
-func (a *Authenticator) AuthenticatePassword(username, password string) (api.UserInfo, bool, error) {
|
|
| 49 |
+func (a *Authenticator) AuthenticatePassword(username, password string) (user.Info, bool, error) {
|
|
| 50 | 50 |
req, err := http.NewRequest("GET", a.url, nil)
|
| 51 | 51 |
if err != nil {
|
| 52 | 52 |
return nil, false, err |
| ... | ... |
@@ -3,6 +3,7 @@ package oauthpassword |
| 3 | 3 |
import ( |
| 4 | 4 |
"fmt" |
| 5 | 5 |
|
| 6 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 6 | 7 |
"github.com/RangelReale/osincli" |
| 7 | 8 |
"github.com/golang/glog" |
| 8 | 9 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| ... | ... |
@@ -18,7 +19,7 @@ func New(client *osincli.Client, identityMapper authapi.UserIdentityMapper) auth |
| 18 | 18 |
return &Authenticator{identityMapper, client}
|
| 19 | 19 |
} |
| 20 | 20 |
|
| 21 |
-func (a *Authenticator) AuthenticatePassword(username, password string) (authapi.UserInfo, bool, error) {
|
|
| 21 |
+func (a *Authenticator) AuthenticatePassword(username, password string) (user.Info, bool, error) {
|
|
| 22 | 22 |
areq := a.client.NewAccessRequest(osincli.PASSWORD, nil) |
| 23 | 23 |
areq.CustomParameters["username"] = username |
| 24 | 24 |
areq.CustomParameters["password"] = password |
| ... | ... |
@@ -3,8 +3,8 @@ package registry |
| 3 | 3 |
import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
|
| 6 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 6 | 7 |
kclient "github.com/GoogleCloudPlatform/kubernetes/pkg/client" |
| 7 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 8 | 8 |
"github.com/openshift/origin/pkg/client" |
| 9 | 9 |
oclient "github.com/openshift/origin/pkg/oauth/client" |
| 10 | 10 |
) |
| ... | ... |
@@ -26,7 +26,7 @@ func New(token OAuthAccessTokenSource, host string, rt http.RoundTripper) *Authe |
| 26 | 26 |
return &Authenticator{token, host, rt}
|
| 27 | 27 |
} |
| 28 | 28 |
|
| 29 |
-func (a *Authenticator) AuthenticatePassword(username, password string) (api.UserInfo, bool, error) {
|
|
| 29 |
+func (a *Authenticator) AuthenticatePassword(username, password string) (user.Info, bool, error) {
|
|
| 30 | 30 |
token, ok, err := a.token.AuthenticatePassword(username, password) |
| 31 | 31 |
if !ok || err != nil {
|
| 32 | 32 |
return nil, false, err |
| ... | ... |
@@ -38,14 +38,14 @@ func (a *Authenticator) AuthenticatePassword(username, password string) (api.Use |
| 38 | 38 |
if err != nil {
|
| 39 | 39 |
return nil, false, err |
| 40 | 40 |
} |
| 41 |
- user, err := client.Users().Get("~")
|
|
| 41 |
+ u, err := client.Users().Get("~")
|
|
| 42 | 42 |
if err != nil {
|
| 43 | 43 |
return nil, false, err |
| 44 | 44 |
} |
| 45 | 45 |
|
| 46 |
- info := &api.DefaultUserInfo{
|
|
| 47 |
- Name: user.Name, |
|
| 48 |
- UID: string(user.UID), |
|
| 46 |
+ info := &user.DefaultInfo{
|
|
| 47 |
+ Name: u.Name, |
|
| 48 |
+ UID: string(u.UID), |
|
| 49 | 49 |
} |
| 50 | 50 |
|
| 51 | 51 |
return info, true, nil |
| ... | ... |
@@ -6,7 +6,8 @@ import ( |
| 6 | 6 |
"net/http" |
| 7 | 7 |
"strings" |
| 8 | 8 |
|
| 9 |
- authapi "github.com/openshift/origin/pkg/auth/api" |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 10 |
+ |
|
| 10 | 11 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 11 | 12 |
) |
| 12 | 13 |
|
| ... | ... |
@@ -18,7 +19,7 @@ func NewBasicAuthAuthentication(passwordAuthenticator authenticator.Password) au |
| 18 | 18 |
return &basicAuthRequestHandler{passwordAuthenticator}
|
| 19 | 19 |
} |
| 20 | 20 |
|
| 21 |
-func (authHandler *basicAuthRequestHandler) AuthenticateRequest(req *http.Request) (authapi.UserInfo, bool, error) {
|
|
| 21 |
+func (authHandler *basicAuthRequestHandler) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 22 | 22 |
username, password, err := getBasicAuthInfo(req) |
| 23 | 23 |
if err != nil {
|
| 24 | 24 |
return nil, false, err |
| ... | ... |
@@ -4,7 +4,7 @@ import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
"testing" |
| 6 | 6 |
|
| 7 |
- authapi "github.com/openshift/origin/pkg/auth/api" |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 8 |
) |
| 9 | 9 |
|
| 10 | 10 |
const ( |
| ... | ... |
@@ -14,14 +14,14 @@ const ( |
| 14 | 14 |
) |
| 15 | 15 |
|
| 16 | 16 |
type mockPasswordAuthenticator struct {
|
| 17 |
- returnUser authapi.UserInfo |
|
| 17 |
+ returnUser user.Info |
|
| 18 | 18 |
isAuthenticated bool |
| 19 | 19 |
err error |
| 20 | 20 |
passedUser string |
| 21 | 21 |
passedPassword string |
| 22 | 22 |
} |
| 23 | 23 |
|
| 24 |
-func (mock *mockPasswordAuthenticator) AuthenticatePassword(username, password string) (authapi.UserInfo, bool, error) {
|
|
| 24 |
+func (mock *mockPasswordAuthenticator) AuthenticatePassword(username, password string) (user.Info, bool, error) {
|
|
| 25 | 25 |
mock.passedUser = username |
| 26 | 26 |
mock.passedPassword = password |
| 27 | 27 |
|
| ... | ... |
@@ -4,7 +4,7 @@ import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
"strings" |
| 6 | 6 |
|
| 7 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 8 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 9 | 9 |
) |
| 10 | 10 |
|
| ... | ... |
@@ -16,7 +16,7 @@ func New(auth authenticator.Token) *Authenticator {
|
| 16 | 16 |
return &Authenticator{auth}
|
| 17 | 17 |
} |
| 18 | 18 |
|
| 19 |
-func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 19 |
+func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 20 | 20 |
auth := strings.TrimSpace(req.Header.Get("Authorization"))
|
| 21 | 21 |
if auth == "" {
|
| 22 | 22 |
return nil, false, nil |
| ... | ... |
@@ -4,7 +4,7 @@ import ( |
| 4 | 4 |
"errors" |
| 5 | 5 |
"net/http" |
| 6 | 6 |
|
| 7 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 8 |
) |
| 9 | 9 |
|
| 10 | 10 |
type Context interface {
|
| ... | ... |
@@ -19,14 +19,14 @@ func NewAuthenticator(context Context) *Authenticator {
|
| 19 | 19 |
return &Authenticator{context}
|
| 20 | 20 |
} |
| 21 | 21 |
|
| 22 |
-func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 22 |
+func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 23 | 23 |
obj, ok := a.context.Get(req) |
| 24 | 24 |
if !ok {
|
| 25 | 25 |
return nil, false, nil |
| 26 | 26 |
} |
| 27 |
- user, ok := obj.(api.UserInfo) |
|
| 27 |
+ user, ok := obj.(user.Info) |
|
| 28 | 28 |
if !ok {
|
| 29 |
- return nil, false, errors.New("the context object is not an api.UserInfo")
|
|
| 29 |
+ return nil, false, errors.New("the context object is not a user.Info")
|
|
| 30 | 30 |
} |
| 31 | 31 |
return user, true, nil |
| 32 | 32 |
} |
| ... | ... |
@@ -6,7 +6,7 @@ import ( |
| 6 | 6 |
|
| 7 | 7 |
"github.com/golang/glog" |
| 8 | 8 |
|
| 9 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 10 | 10 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| 11 | 11 |
) |
| 12 | 12 |
|
| ... | ... |
@@ -30,7 +30,7 @@ func NewAuthenticator(config *Config, mapper authapi.UserIdentityMapper) *Authen |
| 30 | 30 |
return &Authenticator{config, mapper}
|
| 31 | 31 |
} |
| 32 | 32 |
|
| 33 |
-func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 33 |
+func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 34 | 34 |
username := "" |
| 35 | 35 |
for _, header := range a.config.UserNameHeaders {
|
| 36 | 36 |
header = strings.TrimSpace(header) |
| ... | ... |
@@ -4,13 +4,14 @@ import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
"testing" |
| 6 | 6 |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 7 | 8 |
"github.com/openshift/origin/pkg/auth/api" |
| 8 | 9 |
) |
| 9 | 10 |
|
| 10 | 11 |
type TestUserIdentityMapper struct{}
|
| 11 | 12 |
|
| 12 |
-func (m *TestUserIdentityMapper) UserFor(identityInfo api.UserIdentityInfo) (api.UserInfo, error) {
|
|
| 13 |
- return &api.DefaultUserInfo{Name: identityInfo.GetUserName()}, nil
|
|
| 13 |
+func (m *TestUserIdentityMapper) UserFor(identityInfo api.UserIdentityInfo) (user.Info, error) {
|
|
| 14 |
+ return &user.DefaultInfo{Name: identityInfo.GetUserName()}, nil
|
|
| 14 | 15 |
} |
| 15 | 16 |
|
| 16 | 17 |
func TestRequestHeader(t *testing.T) {
|
| ... | ... |
@@ -4,7 +4,7 @@ import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
"strings" |
| 6 | 6 |
|
| 7 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 8 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 9 | 9 |
) |
| 10 | 10 |
|
| ... | ... |
@@ -21,7 +21,7 @@ func New(param string, auth authenticator.Token) *Authenticator {
|
| 21 | 21 |
return &Authenticator{param, auth}
|
| 22 | 22 |
} |
| 23 | 23 |
|
| 24 |
-func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 24 |
+func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 25 | 25 |
token := strings.TrimSpace(req.FormValue(a.param)) |
| 26 | 26 |
if token == "" {
|
| 27 | 27 |
return nil, false, nil |
| ... | ... |
@@ -5,7 +5,7 @@ import ( |
| 5 | 5 |
|
| 6 | 6 |
kerrors "github.com/GoogleCloudPlatform/kubernetes/pkg/util/errors" |
| 7 | 7 |
|
| 8 |
- authapi "github.com/openshift/origin/pkg/auth/api" |
|
| 8 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 9 | 9 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 10 | 10 |
) |
| 11 | 11 |
|
| ... | ... |
@@ -23,7 +23,7 @@ func NewUnionAuthentication(authRequestHandlers ...authenticator.Request) authen |
| 23 | 23 |
|
| 24 | 24 |
// AuthenticateRequest authenticates the request using a chain of authenticator.Request objects. The first |
| 25 | 25 |
// success returns that identity. Errors are only returned if no matches are found. |
| 26 |
-func (authHandler *Authenticator) AuthenticateRequest(req *http.Request) (authapi.UserInfo, bool, error) {
|
|
| 26 |
+func (authHandler *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 27 | 27 |
errors := []error{}
|
| 28 | 28 |
for _, currAuthRequestHandler := range authHandler.Handlers {
|
| 29 | 29 |
info, ok, err := currAuthRequestHandler.AuthenticateRequest(req) |
| ... | ... |
@@ -6,16 +6,16 @@ import ( |
| 6 | 6 |
"strings" |
| 7 | 7 |
"testing" |
| 8 | 8 |
|
| 9 |
- authapi "github.com/openshift/origin/pkg/auth/api" |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 10 | 10 |
) |
| 11 | 11 |
|
| 12 | 12 |
type mockAuthRequestHandler struct {
|
| 13 |
- returnUser authapi.UserInfo |
|
| 13 |
+ returnUser user.Info |
|
| 14 | 14 |
isAuthenticated bool |
| 15 | 15 |
err error |
| 16 | 16 |
} |
| 17 | 17 |
|
| 18 |
-func (mock *mockAuthRequestHandler) AuthenticateRequest(req *http.Request) (authapi.UserInfo, bool, error) {
|
|
| 18 |
+func (mock *mockAuthRequestHandler) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 19 | 19 |
return mock.returnUser, mock.isAuthenticated, mock.err |
| 20 | 20 |
} |
| 21 | 21 |
|
| ... | ... |
@@ -4,20 +4,20 @@ import ( |
| 4 | 4 |
"crypto/x509" |
| 5 | 5 |
"net/http" |
| 6 | 6 |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 7 | 8 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/errors" |
| 8 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 9 | 9 |
) |
| 10 | 10 |
|
| 11 | 11 |
// UserConversion defines an interface for extracting user info from a client certificate chain |
| 12 | 12 |
type UserConversion interface {
|
| 13 |
- User(chain []*x509.Certificate) (api.UserInfo, bool, error) |
|
| 13 |
+ User(chain []*x509.Certificate) (user.Info, bool, error) |
|
| 14 | 14 |
} |
| 15 | 15 |
|
| 16 | 16 |
// UserConversionFunc is a function that implements the UserConversion interface. |
| 17 |
-type UserConversionFunc func(chain []*x509.Certificate) (api.UserInfo, bool, error) |
|
| 17 |
+type UserConversionFunc func(chain []*x509.Certificate) (user.Info, bool, error) |
|
| 18 | 18 |
|
| 19 | 19 |
// User implements x509.UserConversion |
| 20 |
-func (f UserConversionFunc) User(chain []*x509.Certificate) (api.UserInfo, bool, error) {
|
|
| 20 |
+func (f UserConversionFunc) User(chain []*x509.Certificate) (user.Info, bool, error) {
|
|
| 21 | 21 |
return f(chain) |
| 22 | 22 |
} |
| 23 | 23 |
|
| ... | ... |
@@ -28,13 +28,13 @@ type Authenticator struct {
|
| 28 | 28 |
} |
| 29 | 29 |
|
| 30 | 30 |
// New returns a request.Authenticator that verifies client certificates using the provided |
| 31 |
-// VerifyOptions, and converts valid certificate chains into api.UserInfo using the provided UserConversion |
|
| 31 |
+// VerifyOptions, and converts valid certificate chains into user.Info using the provided UserConversion |
|
| 32 | 32 |
func New(opts x509.VerifyOptions, user UserConversion) *Authenticator {
|
| 33 | 33 |
return &Authenticator{opts, user}
|
| 34 | 34 |
} |
| 35 | 35 |
|
| 36 | 36 |
// AuthenticateRequest authenticates the request using presented client certificates |
| 37 |
-func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 37 |
+func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 38 | 38 |
if req.TLS == nil {
|
| 39 | 39 |
return nil, false, nil |
| 40 | 40 |
} |
| ... | ... |
@@ -71,25 +71,25 @@ func DefaultVerifyOptions() x509.VerifyOptions {
|
| 71 | 71 |
} |
| 72 | 72 |
|
| 73 | 73 |
// CommonNameUserConversion builds user info from a certificate chain using the subject's CommonName |
| 74 |
-var CommonNameUserConversion = UserConversionFunc(func(chain []*x509.Certificate) (api.UserInfo, bool, error) {
|
|
| 74 |
+var CommonNameUserConversion = UserConversionFunc(func(chain []*x509.Certificate) (user.Info, bool, error) {
|
|
| 75 | 75 |
if len(chain[0].Subject.CommonName) == 0 {
|
| 76 | 76 |
return nil, false, nil |
| 77 | 77 |
} |
| 78 |
- return &api.DefaultUserInfo{Name: chain[0].Subject.CommonName}, true, nil
|
|
| 78 |
+ return &user.DefaultInfo{Name: chain[0].Subject.CommonName}, true, nil
|
|
| 79 | 79 |
}) |
| 80 | 80 |
|
| 81 | 81 |
// DNSNameUserConversion builds user info from a certificate chain using the first DNSName on the certificate |
| 82 |
-var DNSNameUserConversion = UserConversionFunc(func(chain []*x509.Certificate) (api.UserInfo, bool, error) {
|
|
| 82 |
+var DNSNameUserConversion = UserConversionFunc(func(chain []*x509.Certificate) (user.Info, bool, error) {
|
|
| 83 | 83 |
if len(chain[0].DNSNames) == 0 {
|
| 84 | 84 |
return nil, false, nil |
| 85 | 85 |
} |
| 86 |
- return &api.DefaultUserInfo{Name: chain[0].DNSNames[0]}, true, nil
|
|
| 86 |
+ return &user.DefaultInfo{Name: chain[0].DNSNames[0]}, true, nil
|
|
| 87 | 87 |
}) |
| 88 | 88 |
|
| 89 | 89 |
// EmailAddressUserConversion builds user info from a certificate chain using the first EmailAddress on the certificate |
| 90 |
-var EmailAddressUserConversion = UserConversionFunc(func(chain []*x509.Certificate) (api.UserInfo, bool, error) {
|
|
| 90 |
+var EmailAddressUserConversion = UserConversionFunc(func(chain []*x509.Certificate) (user.Info, bool, error) {
|
|
| 91 | 91 |
if len(chain[0].EmailAddresses) == 0 {
|
| 92 | 92 |
return nil, false, nil |
| 93 | 93 |
} |
| 94 |
- return &api.DefaultUserInfo{Name: chain[0].EmailAddresses[0]}, true, nil
|
|
| 94 |
+ return &user.DefaultInfo{Name: chain[0].EmailAddresses[0]}, true, nil
|
|
| 95 | 95 |
}) |
| ... | ... |
@@ -9,7 +9,7 @@ import ( |
| 9 | 9 |
"testing" |
| 10 | 10 |
"time" |
| 11 | 11 |
|
| 12 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 12 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 13 | 13 |
) |
| 14 | 14 |
|
| 15 | 15 |
const ( |
| ... | ... |
@@ -452,7 +452,7 @@ func TestX509(t *testing.T) {
|
| 452 | 452 |
"custom conversion error": {
|
| 453 | 453 |
Opts: getDefaultVerifyOptions(t), |
| 454 | 454 |
Certs: getCerts(t, clientCNCert), |
| 455 |
- User: UserConversionFunc(func(chain []*x509.Certificate) (api.UserInfo, bool, error) {
|
|
| 455 |
+ User: UserConversionFunc(func(chain []*x509.Certificate) (user.Info, bool, error) {
|
|
| 456 | 456 |
return nil, false, errors.New("custom error")
|
| 457 | 457 |
}), |
| 458 | 458 |
|
| ... | ... |
@@ -462,8 +462,8 @@ func TestX509(t *testing.T) {
|
| 462 | 462 |
"custom conversion success": {
|
| 463 | 463 |
Opts: getDefaultVerifyOptions(t), |
| 464 | 464 |
Certs: getCerts(t, clientCNCert), |
| 465 |
- User: UserConversionFunc(func(chain []*x509.Certificate) (api.UserInfo, bool, error) {
|
|
| 466 |
- return &api.DefaultUserInfo{Name: "custom"}, true, nil
|
|
| 465 |
+ User: UserConversionFunc(func(chain []*x509.Certificate) (user.Info, bool, error) {
|
|
| 466 |
+ return &user.DefaultInfo{Name: "custom"}, true, nil
|
|
| 467 | 467 |
}), |
| 468 | 468 |
|
| 469 | 469 |
ExpectUserName: "custom", |
| ... | ... |
@@ -6,12 +6,12 @@ import ( |
| 6 | 6 |
"io" |
| 7 | 7 |
"os" |
| 8 | 8 |
|
| 9 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 10 | 10 |
) |
| 11 | 11 |
|
| 12 | 12 |
type TokenAuthenticator struct {
|
| 13 | 13 |
path string |
| 14 |
- tokens map[string]*api.DefaultUserInfo |
|
| 14 |
+ tokens map[string]*user.DefaultInfo |
|
| 15 | 15 |
} |
| 16 | 16 |
|
| 17 | 17 |
func NewTokenAuthenticator(path string) (*TokenAuthenticator, error) {
|
| ... | ... |
@@ -21,7 +21,7 @@ func NewTokenAuthenticator(path string) (*TokenAuthenticator, error) {
|
| 21 | 21 |
} |
| 22 | 22 |
defer file.Close() |
| 23 | 23 |
|
| 24 |
- tokens := make(map[string]*api.DefaultUserInfo) |
|
| 24 |
+ tokens := make(map[string]*user.DefaultInfo) |
|
| 25 | 25 |
reader := csv.NewReader(file) |
| 26 | 26 |
for {
|
| 27 | 27 |
record, err := reader.Read() |
| ... | ... |
@@ -31,15 +31,14 @@ func NewTokenAuthenticator(path string) (*TokenAuthenticator, error) {
|
| 31 | 31 |
if err != nil {
|
| 32 | 32 |
return nil, err |
| 33 | 33 |
} |
| 34 |
- if len(record) < 3 {
|
|
| 34 |
+ if len(record) < 2 {
|
|
| 35 | 35 |
continue |
| 36 | 36 |
} |
| 37 |
- obj := &api.DefaultUserInfo{
|
|
| 38 |
- Name: record[1], |
|
| 39 |
- Scope: record[2], |
|
| 37 |
+ obj := &user.DefaultInfo{
|
|
| 38 |
+ Name: record[1], |
|
| 40 | 39 |
} |
| 41 |
- if len(record) > 3 {
|
|
| 42 |
- obj.UID = record[3] |
|
| 40 |
+ if len(record) > 2 {
|
|
| 41 |
+ obj.UID = record[2] |
|
| 43 | 42 |
} |
| 44 | 43 |
tokens[record[0]] = obj |
| 45 | 44 |
} |
| ... | ... |
@@ -50,7 +49,7 @@ func NewTokenAuthenticator(path string) (*TokenAuthenticator, error) {
|
| 50 | 50 |
}, nil |
| 51 | 51 |
} |
| 52 | 52 |
|
| 53 |
-func (a *TokenAuthenticator) AuthenticateToken(value string) (api.UserInfo, bool, error) {
|
|
| 53 |
+func (a *TokenAuthenticator) AuthenticateToken(value string) (user.Info, bool, error) {
|
|
| 54 | 54 |
user, ok := a.tokens[value] |
| 55 | 55 |
if !ok {
|
| 56 | 56 |
return nil, false, errors.New("Invalid token")
|
| ... | ... |
@@ -3,7 +3,7 @@ package group |
| 3 | 3 |
import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
|
| 6 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 6 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 7 | 7 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 8 | 8 |
) |
| 9 | 9 |
|
| ... | ... |
@@ -13,17 +13,15 @@ type GroupAdder struct {
|
| 13 | 13 |
Groups []string |
| 14 | 14 |
} |
| 15 | 15 |
|
| 16 |
-func (g *GroupAdder) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 17 |
- user, ok, err := g.Authenticator.AuthenticateRequest(req) |
|
| 16 |
+func (g *GroupAdder) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 17 |
+ u, ok, err := g.Authenticator.AuthenticateRequest(req) |
|
| 18 | 18 |
if err != nil || !ok {
|
| 19 | 19 |
return nil, ok, err |
| 20 | 20 |
} |
| 21 |
- return &api.DefaultUserInfo{
|
|
| 22 |
- Name: user.GetName(), |
|
| 23 |
- UID: user.GetUID(), |
|
| 24 |
- Groups: append(user.GetGroups(), g.Groups...), |
|
| 25 |
- Scope: user.GetScope(), |
|
| 26 |
- Extra: user.GetExtra(), |
|
| 21 |
+ return &user.DefaultInfo{
|
|
| 22 |
+ Name: u.GetName(), |
|
| 23 |
+ UID: u.GetUID(), |
|
| 24 |
+ Groups: append(u.GetGroups(), g.Groups...), |
|
| 27 | 25 |
}, true, nil |
| 28 | 26 |
} |
| 29 | 27 |
|
| ... | ... |
@@ -5,15 +5,15 @@ import ( |
| 5 | 5 |
"reflect" |
| 6 | 6 |
"testing" |
| 7 | 7 |
|
| 8 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 8 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 9 | 9 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 10 | 10 |
) |
| 11 | 11 |
|
| 12 | 12 |
func TestGroupAdder(t *testing.T) {
|
| 13 | 13 |
adder := authenticator.Request( |
| 14 | 14 |
NewGroupAdder( |
| 15 |
- authenticator.RequestFunc(func(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 16 |
- return &api.DefaultUserInfo{Name: "user", Groups: []string{"original"}}, true, nil
|
|
| 15 |
+ authenticator.RequestFunc(func(req *http.Request) (user.Info, bool, error) {
|
|
| 16 |
+ return &user.DefaultInfo{Name: "user", Groups: []string{"original"}}, true, nil
|
|
| 17 | 17 |
}), |
| 18 | 18 |
[]string{"added"},
|
| 19 | 19 |
), |
| ... | ... |
@@ -6,10 +6,10 @@ import ( |
| 6 | 6 |
"net/http" |
| 7 | 7 |
"net/url" |
| 8 | 8 |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 9 | 10 |
"github.com/RangelReale/osincli" |
| 10 | 11 |
"github.com/golang/glog" |
| 11 | 12 |
|
| 12 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 13 | 13 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| 14 | 14 |
"github.com/openshift/origin/pkg/auth/oauth/handlers" |
| 15 | 15 |
) |
| ... | ... |
@@ -168,7 +168,7 @@ func (defaultState) Check(state string, w http.ResponseWriter, req *http.Request |
| 168 | 168 |
return true, nil |
| 169 | 169 |
} |
| 170 | 170 |
|
| 171 |
-func (defaultState) AuthenticationSucceeded(user api.UserInfo, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 171 |
+func (defaultState) AuthenticationSucceeded(user user.Info, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 172 | 172 |
values, err := url.ParseQuery(state) |
| 173 | 173 |
if err != nil {
|
| 174 | 174 |
return false, err |
| ... | ... |
@@ -6,6 +6,7 @@ import ( |
| 6 | 6 |
"github.com/RangelReale/osin" |
| 7 | 7 |
"github.com/golang/glog" |
| 8 | 8 |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 9 | 10 |
"github.com/openshift/origin/pkg/auth/api" |
| 10 | 11 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 11 | 12 |
) |
| ... | ... |
@@ -53,7 +54,7 @@ func NewAccessAuthenticator(password authenticator.Password, assertion authentic |
| 53 | 53 |
// HandleAccess implements osinserver.AccessHandler |
| 54 | 54 |
func (h *AccessAuthenticator) HandleAccess(ar *osin.AccessRequest, w http.ResponseWriter) error {
|
| 55 | 55 |
var ( |
| 56 |
- info api.UserInfo |
|
| 56 |
+ info user.Info |
|
| 57 | 57 |
ok bool |
| 58 | 58 |
err error |
| 59 | 59 |
) |
| ... | ... |
@@ -103,16 +104,16 @@ type fixedAuthenticator struct {
|
| 103 | 103 |
} |
| 104 | 104 |
|
| 105 | 105 |
// AuthenticatePassword implements authenticator.Password |
| 106 |
-func (f *fixedAuthenticator) AuthenticatePassword(user, password string) (api.UserInfo, bool, error) {
|
|
| 106 |
+func (f *fixedAuthenticator) AuthenticatePassword(user, password string) (user.Info, bool, error) {
|
|
| 107 | 107 |
return nil, f.allow, nil |
| 108 | 108 |
} |
| 109 | 109 |
|
| 110 | 110 |
// AuthenticateAssertion implements authenticator.Assertion |
| 111 |
-func (f *fixedAuthenticator) AuthenticateAssertion(assertionType, data string) (api.UserInfo, bool, error) {
|
|
| 111 |
+func (f *fixedAuthenticator) AuthenticateAssertion(assertionType, data string) (user.Info, bool, error) {
|
|
| 112 | 112 |
return nil, f.allow, nil |
| 113 | 113 |
} |
| 114 | 114 |
|
| 115 | 115 |
// AuthenticateClient implements authenticator.Client |
| 116 |
-func (f *fixedAuthenticator) AuthenticateClient(client api.Client) (api.UserInfo, bool, error) {
|
|
| 116 |
+func (f *fixedAuthenticator) AuthenticateClient(client api.Client) (user.Info, bool, error) {
|
|
| 117 | 117 |
return nil, f.allow, nil |
| 118 | 118 |
} |
| ... | ... |
@@ -5,6 +5,7 @@ import ( |
| 5 | 5 |
|
| 6 | 6 |
"github.com/golang/glog" |
| 7 | 7 |
|
| 8 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 9 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| 9 | 10 |
) |
| 10 | 11 |
|
| ... | ... |
@@ -16,7 +17,7 @@ func (EmptyAuth) AuthenticationNeeded(client authapi.Client, w http.ResponseWrit |
| 16 | 16 |
|
| 17 | 17 |
type EmptySuccess struct{}
|
| 18 | 18 |
|
| 19 |
-func (EmptySuccess) AuthenticationSucceeded(user authapi.UserInfo, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 19 |
+func (EmptySuccess) AuthenticationSucceeded(user user.Info, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 20 | 20 |
glog.V(4).Infof("AuthenticationSucceeded: %v (state=%s)", user, state)
|
| 21 | 21 |
return false, nil |
| 22 | 22 |
} |
| ... | ... |
@@ -8,6 +8,7 @@ import ( |
| 8 | 8 |
"github.com/RangelReale/osin" |
| 9 | 9 |
"github.com/golang/glog" |
| 10 | 10 |
|
| 11 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 11 | 12 |
"github.com/openshift/origin/pkg/auth/api" |
| 12 | 13 |
oapi "github.com/openshift/origin/pkg/oauth/api" |
| 13 | 14 |
"github.com/openshift/origin/pkg/oauth/registry/clientauthorization" |
| ... | ... |
@@ -41,9 +42,9 @@ func (h *GrantCheck) HandleAuthorize(ar *osin.AuthorizeRequest, w http.ResponseW |
| 41 | 41 |
// Reset request to unauthorized until we verify the grant |
| 42 | 42 |
ar.Authorized = false |
| 43 | 43 |
|
| 44 |
- user, ok := ar.UserData.(api.UserInfo) |
|
| 44 |
+ user, ok := ar.UserData.(user.Info) |
|
| 45 | 45 |
if !ok || user == nil {
|
| 46 |
- return h.errorHandler.GrantError(errors.New("the provided user data is not api.UserInfo"), w, ar.HttpRequest)
|
|
| 46 |
+ return h.errorHandler.GrantError(errors.New("the provided user data is not user.Info"), w, ar.HttpRequest)
|
|
| 47 | 47 |
} |
| 48 | 48 |
|
| 49 | 49 |
grant := &api.Grant{
|
| ... | ... |
@@ -75,7 +76,7 @@ func NewEmptyGrant() GrantHandler {
|
| 75 | 75 |
} |
| 76 | 76 |
|
| 77 | 77 |
// GrantNeeded implements the GrantHandler interface |
| 78 |
-func (emptyGrant) GrantNeeded(user api.UserInfo, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 78 |
+func (emptyGrant) GrantNeeded(user user.Info, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 79 | 79 |
return false, nil |
| 80 | 80 |
} |
| 81 | 81 |
|
| ... | ... |
@@ -90,7 +91,7 @@ func NewAutoGrant(authregistry clientauthorization.Registry) GrantHandler {
|
| 90 | 90 |
} |
| 91 | 91 |
|
| 92 | 92 |
// GrantNeeded implements the GrantHandler interface |
| 93 |
-func (g *autoGrant) GrantNeeded(user api.UserInfo, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 93 |
+func (g *autoGrant) GrantNeeded(user user.Info, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 94 | 94 |
clientAuthID := g.authregistry.ClientAuthorizationName(user.GetName(), grant.Client.GetId()) |
| 95 | 95 |
clientAuth, err := g.authregistry.GetClientAuthorization(clientAuthID) |
| 96 | 96 |
if err == nil {
|
| ... | ... |
@@ -142,7 +143,7 @@ func NewRedirectGrant(url string) GrantHandler {
|
| 142 | 142 |
} |
| 143 | 143 |
|
| 144 | 144 |
// GrantNeeded implements the GrantHandler interface |
| 145 |
-func (g *redirectGrant) GrantNeeded(user api.UserInfo, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 145 |
+func (g *redirectGrant) GrantNeeded(user user.Info, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 146 | 146 |
// If the current request has an error=grant_denied parameter, the user denied the grant |
| 147 | 147 |
if err := req.FormValue("error"); err == GrantDeniedError {
|
| 148 | 148 |
return false, nil |
| ... | ... |
@@ -3,6 +3,7 @@ package handlers |
| 3 | 3 |
import ( |
| 4 | 4 |
"net/http" |
| 5 | 5 |
|
| 6 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 6 | 7 |
"github.com/openshift/origin/pkg/auth/api" |
| 7 | 8 |
) |
| 8 | 9 |
|
| ... | ... |
@@ -35,19 +36,19 @@ type AuthenticationErrorHandler interface {
|
| 35 | 35 |
type AuthenticationSuccessHandler interface {
|
| 36 | 36 |
// AuthenticationSucceeded reacts to a user authenticating, returns true if the response was written, |
| 37 | 37 |
// and returns false if the response was not written. |
| 38 |
- AuthenticationSucceeded(user api.UserInfo, state string, w http.ResponseWriter, req *http.Request) (bool, error) |
|
| 38 |
+ AuthenticationSucceeded(user user.Info, state string, w http.ResponseWriter, req *http.Request) (bool, error) |
|
| 39 | 39 |
} |
| 40 | 40 |
|
| 41 | 41 |
// GrantChecker is responsible for determining if a user has authorized a client for a requested grant |
| 42 | 42 |
type GrantChecker interface {
|
| 43 | 43 |
// HasAuthorizedClient returns true if the user has authorized the client for the requested grant |
| 44 |
- HasAuthorizedClient(user api.UserInfo, grant *api.Grant) (bool, error) |
|
| 44 |
+ HasAuthorizedClient(user user.Info, grant *api.Grant) (bool, error) |
|
| 45 | 45 |
} |
| 46 | 46 |
|
| 47 | 47 |
// GrantHandler handles errors during the grant process, or the client requests an unauthorized grant |
| 48 | 48 |
type GrantHandler interface {
|
| 49 | 49 |
// GrantNeeded reacts when a client requests an unauthorized grant, and returns true if the response was written |
| 50 |
- GrantNeeded(user api.UserInfo, grant *api.Grant, w http.ResponseWriter, req *http.Request) (handled bool, err error) |
|
| 50 |
+ GrantNeeded(user user.Info, grant *api.Grant, w http.ResponseWriter, req *http.Request) (handled bool, err error) |
|
| 51 | 51 |
} |
| 52 | 52 |
|
| 53 | 53 |
// GrantErrorHandler reacts to grant errors |
| ... | ... |
@@ -62,7 +63,7 @@ type GrantErrorHandler interface {
|
| 62 | 62 |
// the chain is aborted. |
| 63 | 63 |
type AuthenticationSuccessHandlers []AuthenticationSuccessHandler |
| 64 | 64 |
|
| 65 |
-func (all AuthenticationSuccessHandlers) AuthenticationSucceeded(user api.UserInfo, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 65 |
+func (all AuthenticationSuccessHandlers) AuthenticationSucceeded(user user.Info, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 66 | 66 |
for _, h := range all {
|
| 67 | 67 |
if handled, err := h.AuthenticationSucceeded(user, state, w, req); handled || err != nil {
|
| 68 | 68 |
return handled, err |
| ... | ... |
@@ -5,6 +5,7 @@ import ( |
| 5 | 5 |
|
| 6 | 6 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors" |
| 7 | 7 |
|
| 8 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 9 |
"github.com/openshift/origin/pkg/auth/api" |
| 9 | 10 |
"github.com/openshift/origin/pkg/oauth/registry/clientauthorization" |
| 10 | 11 |
"github.com/openshift/origin/pkg/oauth/scope" |
| ... | ... |
@@ -18,7 +19,7 @@ func NewClientAuthorizationGrantChecker(registry clientauthorization.Registry) * |
| 18 | 18 |
return &ClientAuthorizationGrantChecker{registry}
|
| 19 | 19 |
} |
| 20 | 20 |
|
| 21 |
-func (c *ClientAuthorizationGrantChecker) HasAuthorizedClient(user api.UserInfo, grant *api.Grant) (approved bool, err error) {
|
|
| 21 |
+func (c *ClientAuthorizationGrantChecker) HasAuthorizedClient(user user.Info, grant *api.Grant) (approved bool, err error) {
|
|
| 22 | 22 |
id := c.registry.ClientAuthorizationName(user.GetName(), grant.Client.GetId()) |
| 23 | 23 |
authorization, err := c.registry.GetClientAuthorization(id) |
| 24 | 24 |
if errors.IsNotFound(err) {
|
| ... | ... |
@@ -12,6 +12,7 @@ import ( |
| 12 | 12 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/util" |
| 13 | 13 |
"github.com/RangelReale/osincli" |
| 14 | 14 |
|
| 15 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 15 | 16 |
"github.com/openshift/origin/pkg/auth/api" |
| 16 | 17 |
"github.com/openshift/origin/pkg/auth/oauth/handlers" |
| 17 | 18 |
oapi "github.com/openshift/origin/pkg/oauth/api" |
| ... | ... |
@@ -21,7 +22,7 @@ import ( |
| 21 | 21 |
) |
| 22 | 22 |
|
| 23 | 23 |
type testHandlers struct {
|
| 24 |
- User api.UserInfo |
|
| 24 |
+ User user.Info |
|
| 25 | 25 |
Authenticate bool |
| 26 | 26 |
Err error |
| 27 | 27 |
AuthNeed bool |
| ... | ... |
@@ -48,11 +49,11 @@ func (h *testHandlers) AuthenticationError(err error, w http.ResponseWriter, req |
| 48 | 48 |
return true, nil |
| 49 | 49 |
} |
| 50 | 50 |
|
| 51 |
-func (h *testHandlers) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 51 |
+func (h *testHandlers) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 52 | 52 |
return h.User, h.Authenticate, h.Err |
| 53 | 53 |
} |
| 54 | 54 |
|
| 55 |
-func (h *testHandlers) GrantNeeded(user api.UserInfo, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 55 |
+func (h *testHandlers) GrantNeeded(user user.Info, grant *api.Grant, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 56 | 56 |
h.GrantNeed = true |
| 57 | 57 |
return h.GrantNeedHandled, h.GrantNeedErr |
| 58 | 58 |
} |
| ... | ... |
@@ -86,7 +87,7 @@ func TestRegistryAndServer(t *testing.T) {
|
| 86 | 86 |
Client *oapi.OAuthClient |
| 87 | 87 |
ClientAuth *oapi.OAuthClientAuthorization |
| 88 | 88 |
AuthSuccess bool |
| 89 |
- AuthUser api.UserInfo |
|
| 89 |
+ AuthUser user.Info |
|
| 90 | 90 |
Scope string |
| 91 | 91 |
Check func(*testHandlers, *http.Request) |
| 92 | 92 |
}{
|
| ... | ... |
@@ -101,7 +102,7 @@ func TestRegistryAndServer(t *testing.T) {
|
| 101 | 101 |
"needs grant": {
|
| 102 | 102 |
Client: validClient, |
| 103 | 103 |
AuthSuccess: true, |
| 104 |
- AuthUser: &api.DefaultUserInfo{
|
|
| 104 |
+ AuthUser: &user.DefaultInfo{
|
|
| 105 | 105 |
Name: "user", |
| 106 | 106 |
}, |
| 107 | 107 |
Check: func(h *testHandlers, _ *http.Request) {
|
| ... | ... |
@@ -113,7 +114,7 @@ func TestRegistryAndServer(t *testing.T) {
|
| 113 | 113 |
"has non covered grant": {
|
| 114 | 114 |
Client: validClient, |
| 115 | 115 |
AuthSuccess: true, |
| 116 |
- AuthUser: &api.DefaultUserInfo{
|
|
| 116 |
+ AuthUser: &user.DefaultInfo{
|
|
| 117 | 117 |
Name: "user", |
| 118 | 118 |
}, |
| 119 | 119 |
ClientAuth: &oapi.OAuthClientAuthorization{
|
| ... | ... |
@@ -131,7 +132,7 @@ func TestRegistryAndServer(t *testing.T) {
|
| 131 | 131 |
"has covered grant": {
|
| 132 | 132 |
Client: validClient, |
| 133 | 133 |
AuthSuccess: true, |
| 134 |
- AuthUser: &api.DefaultUserInfo{
|
|
| 134 |
+ AuthUser: &user.DefaultInfo{
|
|
| 135 | 135 |
Name: "user", |
| 136 | 136 |
}, |
| 137 | 137 |
ClientAuth: &oapi.OAuthClientAuthorization{
|
| ... | ... |
@@ -149,7 +150,7 @@ func TestRegistryAndServer(t *testing.T) {
|
| 149 | 149 |
"has auth and grant": {
|
| 150 | 150 |
Client: validClient, |
| 151 | 151 |
AuthSuccess: true, |
| 152 |
- AuthUser: &api.DefaultUserInfo{
|
|
| 152 |
+ AuthUser: &user.DefaultInfo{
|
|
| 153 | 153 |
Name: "user", |
| 154 | 154 |
}, |
| 155 | 155 |
ClientAuth: validClientAuth, |
| ... | ... |
@@ -4,9 +4,8 @@ import ( |
| 4 | 4 |
"errors" |
| 5 | 5 |
"time" |
| 6 | 6 |
|
| 7 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 8 |
"github.com/openshift/origin/pkg/oauth/registry/accesstoken" |
| 9 |
- "github.com/openshift/origin/pkg/oauth/scope" |
|
| 10 | 9 |
) |
| 11 | 10 |
|
| 12 | 11 |
type TokenAuthenticator struct {
|
| ... | ... |
@@ -21,7 +20,7 @@ func NewTokenAuthenticator(registry accesstoken.Registry) *TokenAuthenticator {
|
| 21 | 21 |
} |
| 22 | 22 |
} |
| 23 | 23 |
|
| 24 |
-func (a *TokenAuthenticator) AuthenticateToken(value string) (api.UserInfo, bool, error) {
|
|
| 24 |
+func (a *TokenAuthenticator) AuthenticateToken(value string) (user.Info, bool, error) {
|
|
| 25 | 25 |
token, err := a.registry.GetAccessToken(value) |
| 26 | 26 |
if err != nil {
|
| 27 | 27 |
return nil, false, err |
| ... | ... |
@@ -29,9 +28,8 @@ func (a *TokenAuthenticator) AuthenticateToken(value string) (api.UserInfo, bool |
| 29 | 29 |
if token.CreationTimestamp.Time.Add(time.Duration(token.ExpiresIn) * time.Second).Before(time.Now()) {
|
| 30 | 30 |
return nil, false, ErrExpired |
| 31 | 31 |
} |
| 32 |
- return &api.DefaultUserInfo{
|
|
| 33 |
- Name: token.UserName, |
|
| 34 |
- UID: token.UserUID, |
|
| 35 |
- Scope: scope.Join(token.Scopes), |
|
| 32 |
+ return &user.DefaultInfo{
|
|
| 33 |
+ Name: token.UserName, |
|
| 34 |
+ UID: token.UserUID, |
|
| 36 | 35 |
}, true, nil |
| 37 | 36 |
} |
| ... | ... |
@@ -3,23 +3,23 @@ package registry |
| 3 | 3 |
import ( |
| 4 | 4 |
"errors" |
| 5 | 5 |
|
| 6 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 6 |
+ kuser "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 7 | 7 |
|
| 8 | 8 |
oapi "github.com/openshift/origin/pkg/oauth/api" |
| 9 | 9 |
) |
| 10 | 10 |
|
| 11 | 11 |
type UserConversion struct{}
|
| 12 | 12 |
|
| 13 |
-// NewUserConversion creates an object that can convert the UserInfo object to and from |
|
| 13 |
+// NewUserConversion creates an object that can convert the user.Info object to and from |
|
| 14 | 14 |
// an oauth access/authorize token object. |
| 15 | 15 |
func NewUserConversion() *UserConversion {
|
| 16 | 16 |
return &UserConversion{}
|
| 17 | 17 |
} |
| 18 | 18 |
|
| 19 | 19 |
func (s *UserConversion) ConvertToAuthorizeToken(user interface{}, token *oapi.OAuthAuthorizeToken) error {
|
| 20 |
- info, ok := user.(api.UserInfo) |
|
| 20 |
+ info, ok := user.(kuser.Info) |
|
| 21 | 21 |
if !ok {
|
| 22 |
- return errors.New("did not receive UserInfo")
|
|
| 22 |
+ return errors.New("did not receive user.Info")
|
|
| 23 | 23 |
} |
| 24 | 24 |
token.UserName = info.GetName() |
| 25 | 25 |
if token.UserName == "" {
|
| ... | ... |
@@ -30,9 +30,9 @@ func (s *UserConversion) ConvertToAuthorizeToken(user interface{}, token *oapi.O
|
| 30 | 30 |
} |
| 31 | 31 |
|
| 32 | 32 |
func (s *UserConversion) ConvertToAccessToken(user interface{}, token *oapi.OAuthAccessToken) error {
|
| 33 |
- info, ok := user.(api.UserInfo) |
|
| 33 |
+ info, ok := user.(kuser.Info) |
|
| 34 | 34 |
if !ok {
|
| 35 |
- return errors.New("did not receive UserInfo")
|
|
| 35 |
+ return errors.New("did not receive user.Info")
|
|
| 36 | 36 |
} |
| 37 | 37 |
token.UserName = info.GetName() |
| 38 | 38 |
if token.UserName == "" {
|
| ... | ... |
@@ -46,7 +46,7 @@ func (s *UserConversion) ConvertFromAuthorizeToken(token *oapi.OAuthAuthorizeTok |
| 46 | 46 |
if token.UserName == "" {
|
| 47 | 47 |
return nil, errors.New("token has no user name stored")
|
| 48 | 48 |
} |
| 49 |
- return &api.DefaultUserInfo{
|
|
| 49 |
+ return &kuser.DefaultInfo{
|
|
| 50 | 50 |
Name: token.UserName, |
| 51 | 51 |
UID: token.UserUID, |
| 52 | 52 |
}, nil |
| ... | ... |
@@ -56,7 +56,7 @@ func (s *UserConversion) ConvertFromAccessToken(token *oapi.OAuthAccessToken) (i |
| 56 | 56 |
if token.UserName == "" {
|
| 57 | 57 |
return nil, errors.New("token has no user name stored")
|
| 58 | 58 |
} |
| 59 |
- return &api.DefaultUserInfo{
|
|
| 59 |
+ return &kuser.DefaultInfo{
|
|
| 60 | 60 |
Name: token.UserName, |
| 61 | 61 |
UID: token.UserUID, |
| 62 | 62 |
}, nil |
| ... | ... |
@@ -6,8 +6,8 @@ import ( |
| 6 | 6 |
"net/url" |
| 7 | 7 |
"strings" |
| 8 | 8 |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 9 | 10 |
"github.com/golang/glog" |
| 10 |
- authapi "github.com/openshift/origin/pkg/auth/api" |
|
| 11 | 11 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 12 | 12 |
ohandlers "github.com/openshift/origin/pkg/auth/oauth/handlers" |
| 13 | 13 |
"github.com/openshift/origin/pkg/auth/server/csrf" |
| ... | ... |
@@ -102,7 +102,7 @@ func (l *Grant) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
| 102 | 102 |
} |
| 103 | 103 |
} |
| 104 | 104 |
|
| 105 |
-func (l *Grant) handleForm(user authapi.UserInfo, w http.ResponseWriter, req *http.Request) {
|
|
| 105 |
+func (l *Grant) handleForm(user user.Info, w http.ResponseWriter, req *http.Request) {
|
|
| 106 | 106 |
q := req.URL.Query() |
| 107 | 107 |
then := q.Get("then")
|
| 108 | 108 |
clientID := q.Get("client_id")
|
| ... | ... |
@@ -152,7 +152,7 @@ func (l *Grant) handleForm(user authapi.UserInfo, w http.ResponseWriter, req *ht |
| 152 | 152 |
l.render.Render(form, w, req) |
| 153 | 153 |
} |
| 154 | 154 |
|
| 155 |
-func (l *Grant) handleGrant(user authapi.UserInfo, w http.ResponseWriter, req *http.Request) {
|
|
| 155 |
+func (l *Grant) handleGrant(user user.Info, w http.ResponseWriter, req *http.Request) {
|
|
| 156 | 156 |
if ok, err := l.csrf.Check(req, req.FormValue("csrf")); !ok || err != nil {
|
| 157 | 157 |
glog.Errorf("Unable to check CSRF token: %v", err)
|
| 158 | 158 |
l.failed("Invalid CSRF token", w, req)
|
| ... | ... |
@@ -11,25 +11,25 @@ import ( |
| 11 | 11 |
"testing" |
| 12 | 12 |
|
| 13 | 13 |
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
| 14 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 14 | 15 |
|
| 15 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 16 | 16 |
"github.com/openshift/origin/pkg/auth/server/csrf" |
| 17 | 17 |
oapi "github.com/openshift/origin/pkg/oauth/api" |
| 18 | 18 |
"github.com/openshift/origin/pkg/oauth/registry/test" |
| 19 | 19 |
) |
| 20 | 20 |
|
| 21 | 21 |
type testAuth struct {
|
| 22 |
- User api.UserInfo |
|
| 22 |
+ User user.Info |
|
| 23 | 23 |
Success bool |
| 24 | 24 |
Err error |
| 25 | 25 |
} |
| 26 | 26 |
|
| 27 |
-func (t *testAuth) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 27 |
+func (t *testAuth) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 28 | 28 |
return t.User, t.Success, t.Err |
| 29 | 29 |
} |
| 30 | 30 |
|
| 31 | 31 |
func goodAuth(username string) *testAuth {
|
| 32 |
- return &testAuth{Success: true, User: &api.DefaultUserInfo{Name: username}}
|
|
| 32 |
+ return &testAuth{Success: true, User: &user.DefaultInfo{Name: username}}
|
|
| 33 | 33 |
} |
| 34 | 34 |
func badAuth(err error) *testAuth {
|
| 35 | 35 |
return &testAuth{Success: false, User: nil, Err: err}
|
| ... | ... |
@@ -6,7 +6,7 @@ import ( |
| 6 | 6 |
|
| 7 | 7 |
"github.com/golang/glog" |
| 8 | 8 |
|
| 9 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 9 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 10 | 10 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 11 | 11 |
"github.com/openshift/origin/pkg/auth/oauth/handlers" |
| 12 | 12 |
"github.com/openshift/origin/pkg/auth/server/csrf" |
| ... | ... |
@@ -24,7 +24,7 @@ type ConfirmFormRenderer interface {
|
| 24 | 24 |
type ConfirmForm struct {
|
| 25 | 25 |
Action string |
| 26 | 26 |
Error string |
| 27 |
- User api.UserInfo |
|
| 27 |
+ User user.Info |
|
| 28 | 28 |
Values ConfirmFormValues |
| 29 | 29 |
} |
| 30 | 30 |
|
| ... | ... |
@@ -9,25 +9,26 @@ import ( |
| 9 | 9 |
"strings" |
| 10 | 10 |
"testing" |
| 11 | 11 |
|
| 12 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 12 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 13 |
+ |
|
| 13 | 14 |
"github.com/openshift/origin/pkg/auth/server/csrf" |
| 14 | 15 |
) |
| 15 | 16 |
|
| 16 | 17 |
type testImplicit struct {
|
| 17 | 18 |
Request *http.Request |
| 18 |
- User api.UserInfo |
|
| 19 |
+ User user.Info |
|
| 19 | 20 |
Success bool |
| 20 | 21 |
Err error |
| 21 | 22 |
Then string |
| 22 | 23 |
Called bool |
| 23 | 24 |
} |
| 24 | 25 |
|
| 25 |
-func (t *testImplicit) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 26 |
+func (t *testImplicit) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 26 | 27 |
t.Request = req |
| 27 | 28 |
return t.User, t.Success, t.Err |
| 28 | 29 |
} |
| 29 | 30 |
|
| 30 |
-func (t *testImplicit) AuthenticationSucceeded(user api.UserInfo, then string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 31 |
+func (t *testImplicit) AuthenticationSucceeded(user user.Info, then string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 31 | 32 |
t.Called = true |
| 32 | 33 |
t.User = user |
| 33 | 34 |
t.Then = then |
| ... | ... |
@@ -48,7 +49,7 @@ func TestImplicit(t *testing.T) {
|
| 48 | 48 |
}{
|
| 49 | 49 |
"display confirm form": {
|
| 50 | 50 |
CSRF: &csrf.FakeCSRF{"test", nil},
|
| 51 |
- Implicit: &testImplicit{Success: true, User: &api.DefaultUserInfo{Name: "user"}},
|
|
| 51 |
+ Implicit: &testImplicit{Success: true, User: &user.DefaultInfo{Name: "user"}},
|
|
| 52 | 52 |
Path: "/login", |
| 53 | 53 |
ExpectContains: []string{
|
| 54 | 54 |
`action="/login"`, |
| ... | ... |
@@ -57,14 +58,14 @@ func TestImplicit(t *testing.T) {
|
| 57 | 57 |
}, |
| 58 | 58 |
"successful POST redirects": {
|
| 59 | 59 |
CSRF: &csrf.FakeCSRF{"test", nil},
|
| 60 |
- Implicit: &testImplicit{Success: true, User: &api.DefaultUserInfo{Name: "user"}},
|
|
| 60 |
+ Implicit: &testImplicit{Success: true, User: &user.DefaultInfo{Name: "user"}},
|
|
| 61 | 61 |
Path: "/login?then=%2Ffoo", |
| 62 | 62 |
PostValues: url.Values{"csrf": []string{"test"}},
|
| 63 | 63 |
ExpectThen: "/foo", |
| 64 | 64 |
}, |
| 65 | 65 |
"redirect when POST fails CSRF": {
|
| 66 | 66 |
CSRF: &csrf.FakeCSRF{"test", nil},
|
| 67 |
- Implicit: &testImplicit{Success: true, User: &api.DefaultUserInfo{Name: "user"}},
|
|
| 67 |
+ Implicit: &testImplicit{Success: true, User: &user.DefaultInfo{Name: "user"}},
|
|
| 68 | 68 |
Path: "/login", |
| 69 | 69 |
PostValues: url.Values{"csrf": []string{"wrong"}},
|
| 70 | 70 |
ExpectRedirect: "/login?reason=token+expired", |
| ... | ... |
@@ -9,27 +9,28 @@ import ( |
| 9 | 9 |
"strings" |
| 10 | 10 |
"testing" |
| 11 | 11 |
|
| 12 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 12 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 13 |
+ |
|
| 13 | 14 |
"github.com/openshift/origin/pkg/auth/server/csrf" |
| 14 | 15 |
) |
| 15 | 16 |
|
| 16 | 17 |
type testAuth struct {
|
| 17 | 18 |
Username string |
| 18 | 19 |
Password string |
| 19 |
- User api.UserInfo |
|
| 20 |
+ User user.Info |
|
| 20 | 21 |
Success bool |
| 21 | 22 |
Err error |
| 22 | 23 |
Then string |
| 23 | 24 |
Called bool |
| 24 | 25 |
} |
| 25 | 26 |
|
| 26 |
-func (t *testAuth) AuthenticatePassword(user, password string) (api.UserInfo, bool, error) {
|
|
| 27 |
+func (t *testAuth) AuthenticatePassword(user, password string) (user.Info, bool, error) {
|
|
| 27 | 28 |
t.Username = user |
| 28 | 29 |
t.Password = password |
| 29 | 30 |
return t.User, t.Success, t.Err |
| 30 | 31 |
} |
| 31 | 32 |
|
| 32 |
-func (t *testAuth) AuthenticationSucceeded(user api.UserInfo, then string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 33 |
+func (t *testAuth) AuthenticationSucceeded(user user.Info, then string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 33 | 34 |
t.Called = true |
| 34 | 35 |
t.User = user |
| 35 | 36 |
t.Then = then |
| ... | ... |
@@ -128,7 +129,7 @@ func TestLogin(t *testing.T) {
|
| 128 | 128 |
}, |
| 129 | 129 |
"login successful": {
|
| 130 | 130 |
CSRF: &csrf.FakeCSRF{Token: "test"},
|
| 131 |
- Auth: &testAuth{Success: true, User: &api.DefaultUserInfo{Name: "user"}},
|
|
| 131 |
+ Auth: &testAuth{Success: true, User: &user.DefaultInfo{Name: "user"}},
|
|
| 132 | 132 |
Path: "/login?then=done", |
| 133 | 133 |
PostValues: url.Values{
|
| 134 | 134 |
"csrf": []string{"test"},
|
| ... | ... |
@@ -4,7 +4,7 @@ import ( |
| 4 | 4 |
"errors" |
| 5 | 5 |
"net/http" |
| 6 | 6 |
|
| 7 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 8 |
) |
| 9 | 9 |
|
| 10 | 10 |
const UserNameKey = "user.name" |
| ... | ... |
@@ -22,7 +22,7 @@ func NewAuthenticator(store Store, name string) *Authenticator {
|
| 22 | 22 |
} |
| 23 | 23 |
} |
| 24 | 24 |
|
| 25 |
-func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 25 |
+func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) {
|
|
| 26 | 26 |
session, err := a.store.Get(req, a.name) |
| 27 | 27 |
if err != nil {
|
| 28 | 28 |
return nil, false, err |
| ... | ... |
@@ -50,13 +50,13 @@ func (a *Authenticator) AuthenticateRequest(req *http.Request) (api.UserInfo, bo |
| 50 | 50 |
} |
| 51 | 51 |
// Tolerate empty string UIDs in the session |
| 52 | 52 |
|
| 53 |
- return &api.DefaultUserInfo{
|
|
| 53 |
+ return &user.DefaultInfo{
|
|
| 54 | 54 |
Name: name, |
| 55 | 55 |
UID: uid, |
| 56 | 56 |
}, true, nil |
| 57 | 57 |
} |
| 58 | 58 |
|
| 59 |
-func (a *Authenticator) AuthenticationSucceeded(user api.UserInfo, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 59 |
+func (a *Authenticator) AuthenticationSucceeded(user user.Info, state string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 60 | 60 |
session, err := a.store.Get(req, a.name) |
| 61 | 61 |
if err != nil {
|
| 62 | 62 |
return false, err |
| ... | ... |
@@ -1,6 +1,7 @@ |
| 1 | 1 |
package identitymapper |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 4 | 5 |
authapi "github.com/openshift/origin/pkg/auth/api" |
| 5 | 6 |
userapi "github.com/openshift/origin/pkg/user/api" |
| 6 | 7 |
uimap "github.com/openshift/origin/pkg/user/registry/useridentitymapping" |
| ... | ... |
@@ -17,7 +18,7 @@ func NewAlwaysCreateUserIdentityToUserMapper(providerID string, userIdentityRegi |
| 17 | 17 |
} |
| 18 | 18 |
|
| 19 | 19 |
// UserFor returns info about the user for whom identity info have been provided |
| 20 |
-func (p *alwaysCreateUserIdentityToUserMapper) UserFor(identityInfo authapi.UserIdentityInfo) (authapi.UserInfo, error) {
|
|
| 20 |
+func (p *alwaysCreateUserIdentityToUserMapper) UserFor(identityInfo authapi.UserIdentityInfo) (user.Info, error) {
|
|
| 21 | 21 |
userIdentityMapping := &userapi.UserIdentityMapping{
|
| 22 | 22 |
Identity: userapi.Identity{
|
| 23 | 23 |
Provider: p.providerID, // Provider id is imposed |
| ... | ... |
@@ -30,9 +31,8 @@ func (p *alwaysCreateUserIdentityToUserMapper) UserFor(identityInfo authapi.User |
| 30 | 30 |
return nil, err |
| 31 | 31 |
} |
| 32 | 32 |
|
| 33 |
- return &authapi.DefaultUserInfo{
|
|
| 34 |
- Name: authoritativeMapping.User.Name, |
|
| 35 |
- UID: string(authoritativeMapping.User.UID), |
|
| 36 |
- Extra: authoritativeMapping.Identity.Extra, |
|
| 33 |
+ return &user.DefaultInfo{
|
|
| 34 |
+ Name: authoritativeMapping.User.Name, |
|
| 35 |
+ UID: string(authoritativeMapping.User.UID), |
|
| 37 | 36 |
}, nil |
| 38 | 37 |
} |
| ... | ... |
@@ -7,10 +7,10 @@ import ( |
| 7 | 7 |
"strings" |
| 8 | 8 |
|
| 9 | 9 |
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
| 10 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 10 | 11 |
klabels "github.com/GoogleCloudPlatform/kubernetes/pkg/labels" |
| 11 | 12 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/util" |
| 12 | 13 |
|
| 13 |
- authenticationapi "github.com/openshift/origin/pkg/auth/api" |
|
| 14 | 14 |
authcontext "github.com/openshift/origin/pkg/auth/context" |
| 15 | 15 |
authorizationapi "github.com/openshift/origin/pkg/authorization/api" |
| 16 | 16 |
policyregistry "github.com/openshift/origin/pkg/authorization/registry/policy" |
| ... | ... |
@@ -26,7 +26,7 @@ type AuthorizationAttributeBuilder interface {
|
| 26 | 26 |
} |
| 27 | 27 |
|
| 28 | 28 |
type AuthorizationAttributes interface {
|
| 29 |
- GetUserInfo() authenticationapi.UserInfo |
|
| 29 |
+ GetUserInfo() user.Info |
|
| 30 | 30 |
GetVerb() string |
| 31 | 31 |
GetResource() string |
| 32 | 32 |
GetNamespace() string |
| ... | ... |
@@ -45,7 +45,7 @@ func NewAuthorizer(masterAuthorizationNamespace string, policyRuleBindingRegistr |
| 45 | 45 |
} |
| 46 | 46 |
|
| 47 | 47 |
type openshiftAuthorizationAttributes struct {
|
| 48 |
- user authenticationapi.UserInfo |
|
| 48 |
+ user user.Info |
|
| 49 | 49 |
verb string |
| 50 | 50 |
resource string |
| 51 | 51 |
namespace string |
| ... | ... |
@@ -60,7 +60,7 @@ func NewAuthorizationAttributeBuilder(requestsToUsers *authcontext.RequestContex |
| 60 | 60 |
return &openshiftAuthorizationAttributeBuilder{requestsToUsers}
|
| 61 | 61 |
} |
| 62 | 62 |
|
| 63 |
-func doesApplyToUser(ruleUsers, ruleGroups []string, user authenticationapi.UserInfo) bool {
|
|
| 63 |
+func doesApplyToUser(ruleUsers, ruleGroups []string, user user.Info) bool {
|
|
| 64 | 64 |
if contains(ruleUsers, user.GetName()) {
|
| 65 | 65 |
return true |
| 66 | 66 |
} |
| ... | ... |
@@ -138,7 +138,7 @@ func (a *openshiftAuthorizer) getRole(roleBinding authorizationapi.RoleBinding) |
| 138 | 138 |
return &role, nil |
| 139 | 139 |
} |
| 140 | 140 |
|
| 141 |
-func (a *openshiftAuthorizer) getEffectivePolicyRules(namespace string, user authenticationapi.UserInfo) ([]authorizationapi.PolicyRule, error) {
|
|
| 141 |
+func (a *openshiftAuthorizer) getEffectivePolicyRules(namespace string, user user.Info) ([]authorizationapi.PolicyRule, error) {
|
|
| 142 | 142 |
roleBindings, err := a.getRoleBindings(namespace) |
| 143 | 143 |
if err != nil {
|
| 144 | 144 |
return nil, err |
| ... | ... |
@@ -271,7 +271,7 @@ func (a openshiftAuthorizationAttributes) resourceMatches(resourceNames util.Str |
| 271 | 271 |
return resourceNames.Has(authorizationapi.ResourceAll) || resourceNames.Has(strings.ToLower(a.GetResource())) |
| 272 | 272 |
} |
| 273 | 273 |
|
| 274 |
-func (a openshiftAuthorizationAttributes) GetUserInfo() authenticationapi.UserInfo {
|
|
| 274 |
+func (a openshiftAuthorizationAttributes) GetUserInfo() user.Info {
|
|
| 275 | 275 |
return a.user |
| 276 | 276 |
} |
| 277 | 277 |
|
| ... | ... |
@@ -301,7 +301,7 @@ func (a *openshiftAuthorizationAttributeBuilder) GetAttributes(req *http.Request |
| 301 | 301 |
if !ok {
|
| 302 | 302 |
return nil, errors.New("could not get user")
|
| 303 | 303 |
} |
| 304 |
- userInfo, ok := userInterface.(authenticationapi.UserInfo) |
|
| 304 |
+ userInfo, ok := userInterface.(user.Info) |
|
| 305 | 305 |
if !ok {
|
| 306 | 306 |
return nil, errors.New("wrong type returned for user")
|
| 307 | 307 |
} |
| ... | ... |
@@ -5,8 +5,8 @@ import ( |
| 5 | 5 |
"testing" |
| 6 | 6 |
|
| 7 | 7 |
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
| 8 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 8 | 9 |
|
| 9 |
- authenticationapi "github.com/openshift/origin/pkg/auth/api" |
|
| 10 | 10 |
authorizationapi "github.com/openshift/origin/pkg/authorization/api" |
| 11 | 11 |
testpolicyregistry "github.com/openshift/origin/pkg/authorization/registry/test" |
| 12 | 12 |
) |
| ... | ... |
@@ -32,7 +32,7 @@ type authorizeTest struct {
|
| 32 | 32 |
func TestAdminEditingGlobalDeploymentConfig(t *testing.T) {
|
| 33 | 33 |
test := &authorizeTest{
|
| 34 | 34 |
attributes: &openshiftAuthorizationAttributes{
|
| 35 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 35 |
+ user: &user.DefaultInfo{
|
|
| 36 | 36 |
Name: "ClusterAdmin", |
| 37 | 37 |
}, |
| 38 | 38 |
verb: "update", |
| ... | ... |
@@ -49,7 +49,7 @@ func TestAdminEditingGlobalDeploymentConfig(t *testing.T) {
|
| 49 | 49 |
func TestDisallowedViewingGlobalPods(t *testing.T) {
|
| 50 | 50 |
test := &authorizeTest{
|
| 51 | 51 |
attributes: &openshiftAuthorizationAttributes{
|
| 52 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 52 |
+ user: &user.DefaultInfo{
|
|
| 53 | 53 |
Name: "SomeYahoo", |
| 54 | 54 |
}, |
| 55 | 55 |
verb: "get", |
| ... | ... |
@@ -66,7 +66,7 @@ func TestDisallowedViewingGlobalPods(t *testing.T) {
|
| 66 | 66 |
func TestProjectAdminEditPolicy(t *testing.T) {
|
| 67 | 67 |
test := &authorizeTest{
|
| 68 | 68 |
attributes: &openshiftAuthorizationAttributes{
|
| 69 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 69 |
+ user: &user.DefaultInfo{
|
|
| 70 | 70 |
Name: "Anna", |
| 71 | 71 |
}, |
| 72 | 72 |
verb: "update", |
| ... | ... |
@@ -84,7 +84,7 @@ func TestProjectAdminEditPolicy(t *testing.T) {
|
| 84 | 84 |
func TestGlobalPolicyOutranksLocalPolicy(t *testing.T) {
|
| 85 | 85 |
test := &authorizeTest{
|
| 86 | 86 |
attributes: &openshiftAuthorizationAttributes{
|
| 87 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 87 |
+ user: &user.DefaultInfo{
|
|
| 88 | 88 |
Name: "ClusterAdmin", |
| 89 | 89 |
}, |
| 90 | 90 |
verb: "update", |
| ... | ... |
@@ -102,7 +102,7 @@ func TestGlobalPolicyOutranksLocalPolicy(t *testing.T) {
|
| 102 | 102 |
func TestResourceKindRestrictionsWork(t *testing.T) {
|
| 103 | 103 |
test1 := &authorizeTest{
|
| 104 | 104 |
attributes: &openshiftAuthorizationAttributes{
|
| 105 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 105 |
+ user: &user.DefaultInfo{
|
|
| 106 | 106 |
Name: "Rachel", |
| 107 | 107 |
}, |
| 108 | 108 |
verb: "get", |
| ... | ... |
@@ -118,7 +118,7 @@ func TestResourceKindRestrictionsWork(t *testing.T) {
|
| 118 | 118 |
|
| 119 | 119 |
test2 := &authorizeTest{
|
| 120 | 120 |
attributes: &openshiftAuthorizationAttributes{
|
| 121 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 121 |
+ user: &user.DefaultInfo{
|
|
| 122 | 122 |
Name: "Rachel", |
| 123 | 123 |
}, |
| 124 | 124 |
verb: "get", |
| ... | ... |
@@ -136,7 +136,7 @@ func TestResourceKindRestrictionsWork(t *testing.T) {
|
| 136 | 136 |
func TestResourceKindRestrictionsWithWeirdWork(t *testing.T) {
|
| 137 | 137 |
test1 := &authorizeTest{
|
| 138 | 138 |
attributes: &openshiftAuthorizationAttributes{
|
| 139 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 139 |
+ user: &user.DefaultInfo{
|
|
| 140 | 140 |
Name: "Rachel", |
| 141 | 141 |
}, |
| 142 | 142 |
verb: "get", |
| ... | ... |
@@ -152,7 +152,7 @@ func TestResourceKindRestrictionsWithWeirdWork(t *testing.T) {
|
| 152 | 152 |
|
| 153 | 153 |
test2 := &authorizeTest{
|
| 154 | 154 |
attributes: &openshiftAuthorizationAttributes{
|
| 155 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 155 |
+ user: &user.DefaultInfo{
|
|
| 156 | 156 |
Name: "Rachel", |
| 157 | 157 |
}, |
| 158 | 158 |
verb: "get", |
| ... | ... |
@@ -170,7 +170,7 @@ func TestResourceKindRestrictionsWithWeirdWork(t *testing.T) {
|
| 170 | 170 |
func TestLocalRightsDoNotGrantGlobalRights(t *testing.T) {
|
| 171 | 171 |
test := &authorizeTest{
|
| 172 | 172 |
attributes: &openshiftAuthorizationAttributes{
|
| 173 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 173 |
+ user: &user.DefaultInfo{
|
|
| 174 | 174 |
Name: "Rachel", |
| 175 | 175 |
}, |
| 176 | 176 |
verb: "get", |
| ... | ... |
@@ -188,7 +188,7 @@ func TestLocalRightsDoNotGrantGlobalRights(t *testing.T) {
|
| 188 | 188 |
func TestVerbRestrictionsWork(t *testing.T) {
|
| 189 | 189 |
test1 := &authorizeTest{
|
| 190 | 190 |
attributes: &openshiftAuthorizationAttributes{
|
| 191 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 191 |
+ user: &user.DefaultInfo{
|
|
| 192 | 192 |
Name: "Valerie", |
| 193 | 193 |
}, |
| 194 | 194 |
verb: "get", |
| ... | ... |
@@ -204,7 +204,7 @@ func TestVerbRestrictionsWork(t *testing.T) {
|
| 204 | 204 |
|
| 205 | 205 |
test2 := &authorizeTest{
|
| 206 | 206 |
attributes: &openshiftAuthorizationAttributes{
|
| 207 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 207 |
+ user: &user.DefaultInfo{
|
|
| 208 | 208 |
Name: "Valerie", |
| 209 | 209 |
}, |
| 210 | 210 |
verb: "create", |
| ... | ... |
@@ -4,15 +4,15 @@ import ( |
| 4 | 4 |
"testing" |
| 5 | 5 |
|
| 6 | 6 |
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
| 7 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 7 | 8 |
|
| 8 |
- authenticationapi "github.com/openshift/origin/pkg/auth/api" |
|
| 9 | 9 |
authorizationapi "github.com/openshift/origin/pkg/authorization/api" |
| 10 | 10 |
) |
| 11 | 11 |
|
| 12 | 12 |
func TestViewerGetAllowedKindInMallet(t *testing.T) {
|
| 13 | 13 |
test := &authorizeTest{
|
| 14 | 14 |
attributes: &openshiftAuthorizationAttributes{
|
| 15 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 15 |
+ user: &user.DefaultInfo{
|
|
| 16 | 16 |
Name: "Victor", |
| 17 | 17 |
}, |
| 18 | 18 |
verb: "get", |
| ... | ... |
@@ -29,7 +29,7 @@ func TestViewerGetAllowedKindInMallet(t *testing.T) {
|
| 29 | 29 |
func TestViewerGetAllowedKindInAdze(t *testing.T) {
|
| 30 | 30 |
test := &authorizeTest{
|
| 31 | 31 |
attributes: &openshiftAuthorizationAttributes{
|
| 32 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 32 |
+ user: &user.DefaultInfo{
|
|
| 33 | 33 |
Name: "Victor", |
| 34 | 34 |
}, |
| 35 | 35 |
verb: "get", |
| ... | ... |
@@ -47,7 +47,7 @@ func TestViewerGetAllowedKindInAdze(t *testing.T) {
|
| 47 | 47 |
func TestViewerGetDisallowedKindInMallet(t *testing.T) {
|
| 48 | 48 |
test := &authorizeTest{
|
| 49 | 49 |
attributes: &openshiftAuthorizationAttributes{
|
| 50 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 50 |
+ user: &user.DefaultInfo{
|
|
| 51 | 51 |
Name: "Victor", |
| 52 | 52 |
}, |
| 53 | 53 |
verb: "get", |
| ... | ... |
@@ -64,7 +64,7 @@ func TestViewerGetDisallowedKindInMallet(t *testing.T) {
|
| 64 | 64 |
func TestViewerGetDisallowedKindInAdze(t *testing.T) {
|
| 65 | 65 |
test := &authorizeTest{
|
| 66 | 66 |
attributes: &openshiftAuthorizationAttributes{
|
| 67 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 67 |
+ user: &user.DefaultInfo{
|
|
| 68 | 68 |
Name: "Victor", |
| 69 | 69 |
}, |
| 70 | 70 |
verb: "get", |
| ... | ... |
@@ -82,7 +82,7 @@ func TestViewerGetDisallowedKindInAdze(t *testing.T) {
|
| 82 | 82 |
func TestViewerCreateAllowedKindInMallet(t *testing.T) {
|
| 83 | 83 |
test := &authorizeTest{
|
| 84 | 84 |
attributes: &openshiftAuthorizationAttributes{
|
| 85 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 85 |
+ user: &user.DefaultInfo{
|
|
| 86 | 86 |
Name: "Victor", |
| 87 | 87 |
}, |
| 88 | 88 |
verb: "create", |
| ... | ... |
@@ -99,7 +99,7 @@ func TestViewerCreateAllowedKindInMallet(t *testing.T) {
|
| 99 | 99 |
func TestViewerCreateAllowedKindInAdze(t *testing.T) {
|
| 100 | 100 |
test := &authorizeTest{
|
| 101 | 101 |
attributes: &openshiftAuthorizationAttributes{
|
| 102 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 102 |
+ user: &user.DefaultInfo{
|
|
| 103 | 103 |
Name: "Victor", |
| 104 | 104 |
}, |
| 105 | 105 |
verb: "create", |
| ... | ... |
@@ -117,7 +117,7 @@ func TestViewerCreateAllowedKindInAdze(t *testing.T) {
|
| 117 | 117 |
func TestEditorUpdateAllowedKindInMallet(t *testing.T) {
|
| 118 | 118 |
test := &authorizeTest{
|
| 119 | 119 |
attributes: &openshiftAuthorizationAttributes{
|
| 120 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 120 |
+ user: &user.DefaultInfo{
|
|
| 121 | 121 |
Name: "Edgar", |
| 122 | 122 |
}, |
| 123 | 123 |
verb: "update", |
| ... | ... |
@@ -134,7 +134,7 @@ func TestEditorUpdateAllowedKindInMallet(t *testing.T) {
|
| 134 | 134 |
func TestEditorUpdateAllowedKindInAdze(t *testing.T) {
|
| 135 | 135 |
test := &authorizeTest{
|
| 136 | 136 |
attributes: &openshiftAuthorizationAttributes{
|
| 137 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 137 |
+ user: &user.DefaultInfo{
|
|
| 138 | 138 |
Name: "Edgar", |
| 139 | 139 |
}, |
| 140 | 140 |
verb: "update", |
| ... | ... |
@@ -152,7 +152,7 @@ func TestEditorUpdateAllowedKindInAdze(t *testing.T) {
|
| 152 | 152 |
func TestEditorUpdateDisallowedKindInMallet(t *testing.T) {
|
| 153 | 153 |
test := &authorizeTest{
|
| 154 | 154 |
attributes: &openshiftAuthorizationAttributes{
|
| 155 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 155 |
+ user: &user.DefaultInfo{
|
|
| 156 | 156 |
Name: "Edgar", |
| 157 | 157 |
}, |
| 158 | 158 |
verb: "update", |
| ... | ... |
@@ -169,7 +169,7 @@ func TestEditorUpdateDisallowedKindInMallet(t *testing.T) {
|
| 169 | 169 |
func TestEditorUpdateDisallowedKindInAdze(t *testing.T) {
|
| 170 | 170 |
test := &authorizeTest{
|
| 171 | 171 |
attributes: &openshiftAuthorizationAttributes{
|
| 172 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 172 |
+ user: &user.DefaultInfo{
|
|
| 173 | 173 |
Name: "Edgar", |
| 174 | 174 |
}, |
| 175 | 175 |
verb: "update", |
| ... | ... |
@@ -187,7 +187,7 @@ func TestEditorUpdateDisallowedKindInAdze(t *testing.T) {
|
| 187 | 187 |
func TestEditorGetAllowedKindInMallet(t *testing.T) {
|
| 188 | 188 |
test := &authorizeTest{
|
| 189 | 189 |
attributes: &openshiftAuthorizationAttributes{
|
| 190 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 190 |
+ user: &user.DefaultInfo{
|
|
| 191 | 191 |
Name: "Edgar", |
| 192 | 192 |
}, |
| 193 | 193 |
verb: "get", |
| ... | ... |
@@ -204,7 +204,7 @@ func TestEditorGetAllowedKindInMallet(t *testing.T) {
|
| 204 | 204 |
func TestEditorGetAllowedKindInAdze(t *testing.T) {
|
| 205 | 205 |
test := &authorizeTest{
|
| 206 | 206 |
attributes: &openshiftAuthorizationAttributes{
|
| 207 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 207 |
+ user: &user.DefaultInfo{
|
|
| 208 | 208 |
Name: "Edgar", |
| 209 | 209 |
}, |
| 210 | 210 |
verb: "get", |
| ... | ... |
@@ -222,7 +222,7 @@ func TestEditorGetAllowedKindInAdze(t *testing.T) {
|
| 222 | 222 |
func TestAdminUpdateAllowedKindInMallet(t *testing.T) {
|
| 223 | 223 |
test := &authorizeTest{
|
| 224 | 224 |
attributes: &openshiftAuthorizationAttributes{
|
| 225 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 225 |
+ user: &user.DefaultInfo{
|
|
| 226 | 226 |
Name: "Matthew", |
| 227 | 227 |
}, |
| 228 | 228 |
verb: "update", |
| ... | ... |
@@ -239,7 +239,7 @@ func TestAdminUpdateAllowedKindInMallet(t *testing.T) {
|
| 239 | 239 |
func TestAdminUpdateAllowedKindInAdze(t *testing.T) {
|
| 240 | 240 |
test := &authorizeTest{
|
| 241 | 241 |
attributes: &openshiftAuthorizationAttributes{
|
| 242 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 242 |
+ user: &user.DefaultInfo{
|
|
| 243 | 243 |
Name: "Matthew", |
| 244 | 244 |
}, |
| 245 | 245 |
verb: "update", |
| ... | ... |
@@ -257,7 +257,7 @@ func TestAdminUpdateAllowedKindInAdze(t *testing.T) {
|
| 257 | 257 |
func TestAdminUpdateDisallowedKindInMallet(t *testing.T) {
|
| 258 | 258 |
test := &authorizeTest{
|
| 259 | 259 |
attributes: &openshiftAuthorizationAttributes{
|
| 260 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 260 |
+ user: &user.DefaultInfo{
|
|
| 261 | 261 |
Name: "Matthew", |
| 262 | 262 |
}, |
| 263 | 263 |
verb: "update", |
| ... | ... |
@@ -274,7 +274,7 @@ func TestAdminUpdateDisallowedKindInMallet(t *testing.T) {
|
| 274 | 274 |
func TestAdminUpdateDisallowedKindInAdze(t *testing.T) {
|
| 275 | 275 |
test := &authorizeTest{
|
| 276 | 276 |
attributes: &openshiftAuthorizationAttributes{
|
| 277 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 277 |
+ user: &user.DefaultInfo{
|
|
| 278 | 278 |
Name: "Matthew", |
| 279 | 279 |
}, |
| 280 | 280 |
verb: "update", |
| ... | ... |
@@ -292,7 +292,7 @@ func TestAdminUpdateDisallowedKindInAdze(t *testing.T) {
|
| 292 | 292 |
func TestAdminGetAllowedKindInMallet(t *testing.T) {
|
| 293 | 293 |
test := &authorizeTest{
|
| 294 | 294 |
attributes: &openshiftAuthorizationAttributes{
|
| 295 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 295 |
+ user: &user.DefaultInfo{
|
|
| 296 | 296 |
Name: "Matthew", |
| 297 | 297 |
}, |
| 298 | 298 |
verb: "get", |
| ... | ... |
@@ -309,7 +309,7 @@ func TestAdminGetAllowedKindInMallet(t *testing.T) {
|
| 309 | 309 |
func TestAdminGetAllowedKindInAdze(t *testing.T) {
|
| 310 | 310 |
test := &authorizeTest{
|
| 311 | 311 |
attributes: &openshiftAuthorizationAttributes{
|
| 312 |
- user: &authenticationapi.DefaultUserInfo{
|
|
| 312 |
+ user: &user.DefaultInfo{
|
|
| 313 | 313 |
Name: "Matthew", |
| 314 | 314 |
}, |
| 315 | 315 |
verb: "get", |
| ... | ... |
@@ -11,13 +11,13 @@ import ( |
| 11 | 11 |
|
| 12 | 12 |
"code.google.com/p/go-uuid/uuid" |
| 13 | 13 |
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
| 14 |
+ kuser "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 14 | 15 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/tools" |
| 15 | 16 |
"github.com/RangelReale/osin" |
| 16 | 17 |
"github.com/RangelReale/osincli" |
| 17 | 18 |
"github.com/emicklei/go-restful" |
| 18 | 19 |
"github.com/golang/glog" |
| 19 | 20 |
|
| 20 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 21 | 21 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 22 | 22 |
"github.com/openshift/origin/pkg/auth/authenticator/challenger/passwordchallenger" |
| 23 | 23 |
"github.com/openshift/origin/pkg/auth/authenticator/password/allowanypassword" |
| ... | ... |
@@ -598,7 +598,7 @@ type callbackPasswordAuthenticator struct {
|
| 598 | 598 |
type redirectSuccessHandler struct{}
|
| 599 | 599 |
|
| 600 | 600 |
// AuthenticationSuccess informs client when authentication was successful |
| 601 |
-func (redirectSuccessHandler) AuthenticationSucceeded(user api.UserInfo, then string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 601 |
+func (redirectSuccessHandler) AuthenticationSucceeded(user kuser.Info, then string, w http.ResponseWriter, req *http.Request) (bool, error) {
|
|
| 602 | 602 |
if len(then) == 0 {
|
| 603 | 603 |
return false, fmt.Errorf("Auth succeeded, but no redirect existed - user=%#v", user)
|
| 604 | 604 |
} |
| ... | ... |
@@ -18,6 +18,7 @@ import ( |
| 18 | 18 |
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
| 19 | 19 |
klatest "github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest" |
| 20 | 20 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver" |
| 21 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 21 | 22 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/capabilities" |
| 22 | 23 |
kclient "github.com/GoogleCloudPlatform/kubernetes/pkg/client" |
| 23 | 24 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd" |
| ... | ... |
@@ -31,7 +32,6 @@ import ( |
| 31 | 31 |
"github.com/spf13/pflag" |
| 32 | 32 |
|
| 33 | 33 |
"github.com/openshift/origin/pkg/api/latest" |
| 34 |
- "github.com/openshift/origin/pkg/auth/api" |
|
| 35 | 34 |
"github.com/openshift/origin/pkg/auth/authenticator" |
| 36 | 35 |
"github.com/openshift/origin/pkg/auth/authenticator/request/bearertoken" |
| 37 | 36 |
"github.com/openshift/origin/pkg/auth/authenticator/request/paramtoken" |
| ... | ... |
@@ -475,8 +475,8 @@ func start(cfg *config, args []string) error {
|
| 475 | 475 |
FailOnError: true, |
| 476 | 476 |
Handlers: []authenticator.Request{
|
| 477 | 477 |
group.NewGroupAdder(unionrequest.NewUnionAuthentication(authenticators...), []string{authenticatedGroup}),
|
| 478 |
- authenticator.RequestFunc(func(req *http.Request) (api.UserInfo, bool, error) {
|
|
| 479 |
- return &api.DefaultUserInfo{Name: unauthenticatedUsername, Groups: []string{unauthenticatedGroup}}, true, nil
|
|
| 478 |
+ authenticator.RequestFunc(func(req *http.Request) (user.Info, bool, error) {
|
|
| 479 |
+ return &user.DefaultInfo{Name: unauthenticatedUsername, Groups: []string{unauthenticatedGroup}}, true, nil
|
|
| 480 | 480 |
}), |
| 481 | 481 |
}, |
| 482 | 482 |
} |
| ... | ... |
@@ -8,17 +8,17 @@ import ( |
| 8 | 8 |
"reflect" |
| 9 | 9 |
"testing" |
| 10 | 10 |
|
| 11 |
+ kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
|
| 12 |
+ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta" |
|
| 11 | 13 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver" |
| 14 |
+ kuser "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" |
|
| 12 | 15 |
kclient "github.com/GoogleCloudPlatform/kubernetes/pkg/client" |
| 13 | 16 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" |
| 14 | 17 |
"github.com/GoogleCloudPlatform/kubernetes/pkg/tools" |
| 15 |
- |
|
| 16 |
- kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api" |
|
| 17 |
- "github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta" |
|
| 18 | 18 |
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/admission/admit" |
| 19 |
+ |
|
| 19 | 20 |
"github.com/openshift/origin/pkg/api/latest" |
| 20 | 21 |
"github.com/openshift/origin/pkg/api/v1beta1" |
| 21 |
- authapi "github.com/openshift/origin/pkg/auth/api" |
|
| 22 | 22 |
oapauth "github.com/openshift/origin/pkg/auth/authenticator/password/oauthpassword/registry" |
| 23 | 23 |
"github.com/openshift/origin/pkg/auth/context" |
| 24 | 24 |
"github.com/openshift/origin/pkg/client" |
| ... | ... |
@@ -151,13 +151,13 @@ func TestUserLookup(t *testing.T) {
|
| 151 | 151 |
etcdClient := newEtcdClient() |
| 152 | 152 |
interfaces, _ := latest.InterfacesFor(latest.Version) |
| 153 | 153 |
userRegistry := etcd.New(tools.EtcdHelper{etcdClient, interfaces.Codec, tools.RuntimeVersionAdapter{interfaces.MetadataAccessor}}, user.NewDefaultUserInitStrategy())
|
| 154 |
- userInfo := &authapi.DefaultUserInfo{
|
|
| 154 |
+ userInfo := &kuser.DefaultInfo{
|
|
| 155 | 155 |
Name: ":test", |
| 156 | 156 |
} |
| 157 | 157 |
userContext := context.NewRequestContextMap() |
| 158 | 158 |
userContextFunc := userregistry.ContextFunc(func(req *http.Request) (userregistry.Info, bool) {
|
| 159 | 159 |
obj, found := userContext.Get(req) |
| 160 |
- if user, ok := obj.(authapi.UserInfo); found && ok {
|
|
| 160 |
+ if user, ok := obj.(kuser.Info); found && ok {
|
|
| 161 | 161 |
return user, true |
| 162 | 162 |
} |
| 163 | 163 |
return nil, false |