Method: FTW::Agent#initialize

Defined in:
lib/ftw/agent.rb

#initializeAgent

Returns a new instance of Agent.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/ftw/agent.rb', line 60

def initialize
  @pool = FTW::Pool.new
  @logger = Cabin::Channel.get

  configuration[REDIRECTION_LIMIT] = 20

  @certificate_store = OpenSSL::X509::Store.new
  if File.readable?(OpenSSL::X509::DEFAULT_CERT_FILE)
    @logger.debug("Adding default certificate file",
                  :path => OpenSSL::X509::DEFAULT_CERT_FILE)
    @certificate_store.add_file(OpenSSL::X509::DEFAULT_CERT_FILE)
  else
    # Use some better defaults from http://curl.haxx.se/docs/caextract.html
    @logger.info("Using upstream ssl certs, possibly untrusty.")
    default_ca = File.join(File.dirname(__FILE__), "cacert.pem")

    # JRUBY-6870 - strip 'jar:' prefix if it is present.
    if default_ca =~ /^jar:file.*!/
      default_ca.gsub!(/^jar:/, "")
    end
    @certificate_store.add_file(default_ca)
  end

  # Handle the local user/app trust store as well.
  if File.directory?(configuration[SSL_TRUST_STORE])
    # This is a directory, so use add_path
    @logger.debug("Adding SSL_TRUST_STORE",
                  :path => configuration[SSL_TRUST_STORE])
    @certificate_store.add_path(configuration[SSL_TRUST_STORE])
  end

  # TODO(sissel): Add custom paths for ssl certs
end