12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // Copyright 2017 The etcd Authors
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package auth
- import (
- "context"
- "testing"
- )
- // TestSimpleTokenDisabled ensures that TokenProviderSimple behaves correctly when
- // disabled.
- func TestSimpleTokenDisabled(t *testing.T) {
- initialState := newTokenProviderSimple(dummyIndexWaiter)
- explicitlyDisabled := newTokenProviderSimple(dummyIndexWaiter)
- explicitlyDisabled.enable()
- explicitlyDisabled.disable()
- for _, tp := range []*tokenSimple{initialState, explicitlyDisabled} {
- ctx := context.WithValue(context.WithValue(context.TODO(), AuthenticateParamIndex{}, uint64(1)), AuthenticateParamSimpleTokenPrefix{}, "dummy")
- token, err := tp.assign(ctx, "user1", 0)
- if err != nil {
- t.Fatal(err)
- }
- authInfo, ok := tp.info(ctx, token, 0)
- if ok {
- t.Errorf("expected (true, \"user1\") got (%t, %s)", ok, authInfo.Username)
- }
- tp.invalidateUser("user1") // should be no-op
- }
- }
- // TestSimpleTokenAssign ensures that TokenProviderSimple can correctly assign a
- // token, look it up with info, and invalidate it by user.
- func TestSimpleTokenAssign(t *testing.T) {
- tp := newTokenProviderSimple(dummyIndexWaiter)
- tp.enable()
- ctx := context.WithValue(context.WithValue(context.TODO(), AuthenticateParamIndex{}, uint64(1)), AuthenticateParamSimpleTokenPrefix{}, "dummy")
- token, err := tp.assign(ctx, "user1", 0)
- if err != nil {
- t.Fatal(err)
- }
- authInfo, ok := tp.info(ctx, token, 0)
- if !ok || authInfo.Username != "user1" {
- t.Errorf("expected (true, \"token2\") got (%t, %s)", ok, authInfo.Username)
- }
- tp.invalidateUser("user1")
- _, ok = tp.info(context.TODO(), token, 0)
- if ok {
- t.Errorf("expected ok == false after user is invalidated")
- }
- }
|