X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/038585ecce8564f8ebd5f5b28b3909593b1b45ec..053f74285455278bed87cd4b3dc0df2adffb3b9c:/services/api/app/models/api_client_authorization.rb diff --git a/services/api/app/models/api_client_authorization.rb b/services/api/app/models/api_client_authorization.rb index 26853c3496..a6beaa07ab 100644 --- a/services/api/app/models/api_client_authorization.rb +++ b/services/api/app/models/api_client_authorization.rb @@ -112,7 +112,20 @@ class ApiClientAuthorization < ArvadosModel end def self.check_anonymous_user_token token - if token.length >= 50 and token == Rails.configuration.Users.AnonymousUserToken + case token[0..2] + when 'v2/' + _, token_uuid, secret, optional = token.split('/') + unless token_uuid.andand.length == 27 && secret.andand.length.andand > 0 + # invalid token + return nil + end + else + # v1 token + secret = token + end + + # The anonymous token content and minimum length is verified in lib/config + if secret.length >= 0 && secret == Rails.configuration.Users.AnonymousUserToken return ApiClientAuthorization.new(user: User.find_by_uuid(anonymous_user_uuid), uuid: Rails.configuration.ClusterID+"-gj3su-anonymouspublic", api_token: token,