Sha256: e1a74eb9654e948d03ee83516d57cb258167c3c525cf1da538986817b8f8f16d

Contents?: true

Size: 1000 Bytes

Versions: 1

Compression:

Stored size: 1000 Bytes

Contents

# frozen_string_literal: true

module ApiTester
  # Module for ensuring the server isn't broadcasting information about itself
  module ServerInformation
    def self.go(contract)
      reports = []
      endpoint = contract.endpoints[0]
      response = endpoint.default_call contract.base_url

      %i[server x_powered_by x_aspnetmvc_version x_aspnet_version].each do |key|
        if response.headers[key]
          reports << ServerBroadcastReport.new(response.headers[key],
                                               key)
        end
      end

      reports
    end

    def self.order
      10
    end
  end
end

# Report used by module
class ServerBroadcastReport
  attr_accessor :server_info
  attr_accessor :server_key

  def initialize(server_info, server_key)
    self.server_info = server_info
    self.server_key = server_key
  end

  def print
    puts 'Found server information being broadcast in headers:'
    puts "   #{server_info}"
    puts "     as #{server_key}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
api-tester-1.1.1 lib/api-tester/modules/server_information.rb