mirror of
https://github.com/int128/kubelogin.git
synced 2026-05-21 15:22:48 +00:00
* Add new `--oidc-use-access-token` flag to `get-token` Implements https://github.com/int128/kubelogin/issues/1083. See description there for context. In its current form, this PR is bare bones functionality. I have not yet added any tests to confirm this behavior. Additionally, we could consider updtating some of the naming. It is confusing to return a `TokenSet` where `IDToken` actually has an `accessToken`. I'm open to feedback on how best to improve this. However, this PR is functional. I have validated it locally. Without adding `--oidc-use-access-token`, and `id_token` is successfully returned. Adding `--oidc-use-access-token` results in an `access_token` being successfully returned. * Fix failing tests Needed to plumb through our new parameter `UseAccessToken` to the mocks as well. * Add a test to make sure new flag is plumbed through * Support Access Tokens whose audience differ from the client_id As noted in the PR, there are some cases where the access token `aud` field will not be the `client_id`. To allow for these, we use a different token verifier that will not verify that claim. --------- Co-authored-by: Adam kafka <akafka@tesla.com>
90 lines
2.9 KiB
Go
90 lines
2.9 KiB
Go
// Code generated by mockery v2.13.1. DO NOT EDIT.
|
|
|
|
package client
|
|
|
|
import (
|
|
context "context"
|
|
|
|
oidc "github.com/int128/kubelogin/pkg/oidc"
|
|
mock "github.com/stretchr/testify/mock"
|
|
|
|
tlsclientconfig "github.com/int128/kubelogin/pkg/tlsclientconfig"
|
|
)
|
|
|
|
// MockFactoryInterface is an autogenerated mock type for the FactoryInterface type
|
|
type MockFactoryInterface struct {
|
|
mock.Mock
|
|
}
|
|
|
|
type MockFactoryInterface_Expecter struct {
|
|
mock *mock.Mock
|
|
}
|
|
|
|
func (_m *MockFactoryInterface) EXPECT() *MockFactoryInterface_Expecter {
|
|
return &MockFactoryInterface_Expecter{mock: &_m.Mock}
|
|
}
|
|
|
|
// New provides a mock function with given fields: ctx, p, tlsClientConfig, useAccessToken
|
|
func (_m *MockFactoryInterface) New(ctx context.Context, p oidc.Provider, tlsClientConfig tlsclientconfig.Config, useAccessToken bool) (Interface, error) {
|
|
ret := _m.Called(ctx, p, tlsClientConfig)
|
|
|
|
var r0 Interface
|
|
if rf, ok := ret.Get(0).(func(context.Context, oidc.Provider, tlsclientconfig.Config, bool) Interface); ok {
|
|
r0 = rf(ctx, p, tlsClientConfig, useAccessToken)
|
|
} else {
|
|
if ret.Get(0) != nil {
|
|
r0 = ret.Get(0).(Interface)
|
|
}
|
|
}
|
|
|
|
var r1 error
|
|
if rf, ok := ret.Get(1).(func(context.Context, oidc.Provider, tlsclientconfig.Config, bool) error); ok {
|
|
r1 = rf(ctx, p, tlsClientConfig, useAccessToken)
|
|
} else {
|
|
r1 = ret.Error(1)
|
|
}
|
|
|
|
return r0, r1
|
|
}
|
|
|
|
// MockFactoryInterface_New_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'New'
|
|
type MockFactoryInterface_New_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// New is a helper method to define mock.On call
|
|
// - ctx context.Context
|
|
// - p oidc.Provider
|
|
// - tlsClientConfig tlsclientconfig.Config
|
|
// - useAccessToken bool
|
|
func (_e *MockFactoryInterface_Expecter) New(ctx interface{}, p interface{}, tlsClientConfig interface{}, useAccessToken bool) *MockFactoryInterface_New_Call {
|
|
return &MockFactoryInterface_New_Call{Call: _e.mock.On("New", ctx, p, tlsClientConfig)}
|
|
}
|
|
|
|
func (_c *MockFactoryInterface_New_Call) Run(run func(ctx context.Context, p oidc.Provider, tlsClientConfig tlsclientconfig.Config)) *MockFactoryInterface_New_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
run(args[0].(context.Context), args[1].(oidc.Provider), args[2].(tlsclientconfig.Config))
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockFactoryInterface_New_Call) Return(_a0 Interface, _a1 error) *MockFactoryInterface_New_Call {
|
|
_c.Call.Return(_a0, _a1)
|
|
return _c
|
|
}
|
|
|
|
type mockConstructorTestingTNewMockFactoryInterface interface {
|
|
mock.TestingT
|
|
Cleanup(func())
|
|
}
|
|
|
|
// NewMockFactoryInterface creates a new instance of MockFactoryInterface. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
|
|
func NewMockFactoryInterface(t mockConstructorTestingTNewMockFactoryInterface) *MockFactoryInterface {
|
|
mock := &MockFactoryInterface{}
|
|
mock.Mock.Test(t)
|
|
|
|
t.Cleanup(func() { mock.AssertExpectations(t) })
|
|
|
|
return mock
|
|
}
|