Sha256: 399178af9a41be9456da57e290f12b848a7ef7973599e41448b050d31838c924

Contents?: true

Size: 1.63 KB

Versions: 7

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

module Doorkeeper
  class Config
    # Doorkeeper configuration validator.
    #
    module Validations
      # Validates configuration options to be set properly.
      #
      def validate!
        validate_reuse_access_token_value
        validate_token_reuse_limit
        validate_secret_strategies
      end

      private

      # Determine whether +reuse_access_token+ and a non-restorable
      # +token_secret_strategy+ have both been activated.
      #
      # In that case, disable reuse_access_token value and warn the user.
      def validate_reuse_access_token_value
        strategy = token_secret_strategy
        return if !reuse_access_token || strategy.allows_restoring_secrets?

        ::Rails.logger.warn(
          "You have configured both reuse_access_token " \
          "AND strategy strategy '#{strategy}' that cannot restore tokens. " \
          "This combination is unsupported. reuse_access_token will be disabled",
        )
        @reuse_access_token = false
      end

      # Validate that the provided strategies are valid for
      # tokens and applications
      def validate_secret_strategies
        token_secret_strategy.validate_for(:token)
        application_secret_strategy.validate_for(:application)
      end

      def validate_token_reuse_limit
        return if !reuse_access_token ||
                  (token_reuse_limit > 0 && token_reuse_limit <= 100)

        ::Rails.logger.warn(
          "You have configured an invalid value for token_reuse_limit option. " \
          "It will be set to default 100",
        )
        @token_reuse_limit = 100
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
doorkeeper-5.5.4 lib/doorkeeper/config/validations.rb
doorkeeper-5.5.3 lib/doorkeeper/config/validations.rb
doorkeeper-5.5.2 lib/doorkeeper/config/validations.rb
doorkeeper-5.5.1 lib/doorkeeper/config/validations.rb
doorkeeper-5.5.0 lib/doorkeeper/config/validations.rb
doorkeeper-5.5.0.rc2 lib/doorkeeper/config/validations.rb
doorkeeper-5.5.0.rc1 lib/doorkeeper/config/validations.rb