fix: enableMultiLogin configuration does not take effect (#5819)
This commit is contained in:
@@ -455,6 +455,11 @@ func (h *handler) passwordGrant(provider, username string, password string, req
|
||||
}
|
||||
|
||||
func (h *handler) issueTokenTo(user user.Info) (*oauth.Token, error) {
|
||||
if !h.options.MultipleLogin {
|
||||
if err := h.tokenOperator.RevokeAllUserTokens(user.GetName()); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
accessToken, err := h.tokenOperator.IssueTo(&token.IssueRequest{
|
||||
User: user,
|
||||
Claims: token.Claims{TokenType: token.AccessToken},
|
||||
@@ -471,7 +476,6 @@ func (h *handler) issueTokenTo(user user.Info) (*oauth.Token, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := oauth.Token{
|
||||
AccessToken: accessToken,
|
||||
// The OAuth 2.0 token_type response parameter value MUST be Bearer,
|
||||
|
||||
@@ -129,9 +129,7 @@ func (t *tokenOperator) tokenCacheValidate(username, token string) error {
|
||||
if exist, err := t.cache.Exists(key); err != nil {
|
||||
return err
|
||||
} else if !exist {
|
||||
err = errors.New("token not found in cache")
|
||||
klog.V(4).Info(fmt.Errorf("%s: %s", err, token))
|
||||
return err
|
||||
return errors.New("token not found in cache")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
2
pkg/simple/client/cache/inmemory_cache.go
vendored
2
pkg/simple/client/cache/inmemory_cache.go
vendored
@@ -92,7 +92,7 @@ func (s *inMemoryCache) cleanInvalidToken() {
|
||||
func (s *inMemoryCache) Keys(pattern string) ([]string, error) {
|
||||
// There is a little difference between go regexp and redis key pattern
|
||||
// In redis, * means any character, while in go . means match everything.
|
||||
pattern = strings.Replace(pattern, "*", ".", -1)
|
||||
pattern = strings.Replace(pattern, "*", ".*", -1)
|
||||
|
||||
re, err := regexp.Compile(pattern)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user