Class: Chef::HTTP::CookieManager

Inherits:
Object
  • Object
show all
Defined in:
lib/chef/http/cookie_manager.rb

Overview

An HTTP middleware to manage storing/sending cookies in HTTP requests. Most HTTP communication in Chef does not need cookies, it was originally implemented to support OpenID, but it’s not known who might be relying on it, so it’s included with Chef::REST

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ CookieManager

Returns a new instance of CookieManager.

[View source]

30
31
32
# File 'lib/chef/http/cookie_manager.rb', line 30

def initialize(options = {})
  @cookies = CookieJar.instance
end

Instance Method Details

#handle_request(method, url, headers = {}, data = false) ⇒ Object

[View source]

34
35
36
37
38
39
40
# File 'lib/chef/http/cookie_manager.rb', line 34

def handle_request(method, url, headers = {}, data = false)
  @host, @port = url.host, url.port
  if @cookies.key?("#{@host}:#{@port}")
    headers["Cookie"] = @cookies["#{@host}:#{@port}"]
  end
  [method, url, headers, data]
end

#handle_response(http_response, rest_request, return_value) ⇒ Object

[View source]

42
43
44
45
46
47
# File 'lib/chef/http/cookie_manager.rb', line 42

def handle_response(http_response, rest_request, return_value)
  if http_response["set-cookie"]
    @cookies["#{@host}:#{@port}"] = http_response["set-cookie"]
  end
  [http_response, rest_request, return_value]
end

#handle_stream_complete(http_response, rest_request, return_value) ⇒ Object

[View source]

53
54
55
# File 'lib/chef/http/cookie_manager.rb', line 53

def handle_stream_complete(http_response, rest_request, return_value)
  [http_response, rest_request, return_value]
end

#stream_response_handler(response) ⇒ Object

[View source]

49
50
51
# File 'lib/chef/http/cookie_manager.rb', line 49

def stream_response_handler(response)
  nil
end