diff options
author | Robert Speicher <robert@gitlab.com> | 2018-10-26 18:42:57 +0000 |
---|---|---|
committer | Thiago Presa <tpresa@gitlab.com> | 2018-10-26 16:34:55 -0300 |
commit | ba9a9b98ea17a174059bf8fbf37a46b4ea292083 (patch) | |
tree | 2dbe4a9ef269495c21d73c12303ea3916e32bf9a | |
parent | 872549f7fe6c78562363f3cc67f6aa38cb0d87f8 (diff) | |
download | gitlab-ce-ba9a9b98ea17a174059bf8fbf37a46b4ea292083.tar.gz |
Merge branch 'fix_pat_auth-11-4' into 'security-11-4'
[11.4] Fix Token lookup for Git over HTTP and registry authentication
See merge request gitlab/gitlabhq!2577
-rw-r--r-- | app/finders/personal_access_tokens_finder.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/auth.rb | 4 |
3 files changed, 3 insertions, 5 deletions
diff --git a/app/finders/personal_access_tokens_finder.rb b/app/finders/personal_access_tokens_finder.rb index 5beea92689f..81fd3b7a547 100644 --- a/app/finders/personal_access_tokens_finder.rb +++ b/app/finders/personal_access_tokens_finder.rb @@ -3,7 +3,7 @@ class PersonalAccessTokensFinder attr_accessor :params - delegate :build, :find, :find_by, to: :execute + delegate :build, :find, :find_by, :find_by_token, to: :execute def initialize(params = {}) @params = params diff --git a/app/models/user.rb b/app/models/user.rb index b7f7abbe184..1157f44476c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -459,7 +459,7 @@ class User < ActiveRecord::Base def find_by_personal_access_token(token_string) return unless token_string - PersonalAccessTokensFinder.new(state: 'active').find_by(token: token_string)&.user # rubocop: disable CodeReuse/Finder + PersonalAccessTokensFinder.new(state: 'active').find_by_token(token_string)&.user # rubocop: disable CodeReuse/Finder end # Returns a user for the given SSH key. diff --git a/lib/gitlab/auth.rb b/lib/gitlab/auth.rb index a36d551d1d7..3ed66013b41 100644 --- a/lib/gitlab/auth.rb +++ b/lib/gitlab/auth.rb @@ -149,17 +149,15 @@ module Gitlab end # rubocop: enable CodeReuse/ActiveRecord - # rubocop: disable CodeReuse/ActiveRecord def personal_access_token_check(password) return unless password.present? - token = PersonalAccessTokensFinder.new(state: 'active').find_by(token: password) + token = PersonalAccessTokensFinder.new(state: 'active').find_by_token(password) if token && valid_scoped_token?(token, available_scopes) Gitlab::Auth::Result.new(token.user, nil, :personal_access_token, abilities_for_scopes(token.scopes)) end end - # rubocop: enable CodeReuse/ActiveRecord def valid_oauth_token?(token) token && token.accessible? && valid_scoped_token?(token, [:api]) |