Class: HTTPI::Auth::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/httpi/auth/config.rb

Overview

HTTPI::Auth::Config

Manages HTTP and SSL auth configuration. Currently supports HTTP basic/digest, Negotiate/SPNEGO, and SSL client authentication.

Constant Summary collapse

TYPES =

Supported authentication types.

[:basic, :digest, :gssnegotiate, :ssl, :ntlm]

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#typeObject

Accessor for the authentication type in use.



85
86
87
# File 'lib/httpi/auth/config.rb', line 85

def type
  @type
end

Instance Method Details

#basic(*args) ⇒ Object

Accessor for the HTTP basic auth credentials.



16
17
18
19
20
21
# File 'lib/httpi/auth/config.rb', line 16

def basic(*args)
  return @basic if args.empty?

  self.type = :basic
  @basic = args.flatten.compact
end

#basic?Boolean

Returns whether to use HTTP basic auth.

Returns:

  • (Boolean)


24
25
26
# File 'lib/httpi/auth/config.rb', line 24

def basic?
  type == :basic
end

#credentialsObject

Shortcut method for returning the credentials for the authentication specified. Returns nil unless any authentication credentials were specified.



79
80
81
82
# File 'lib/httpi/auth/config.rb', line 79

def credentials
  return unless type
  send type
end

#digest(*args) ⇒ Object

Accessor for the HTTP digest auth credentials.



29
30
31
32
33
34
# File 'lib/httpi/auth/config.rb', line 29

def digest(*args)
  return @digest if args.empty?

  self.type = :digest
  @digest = args.flatten.compact
end

#digest?Boolean

Returns whether to use HTTP digest auth.

Returns:

  • (Boolean)


37
38
39
# File 'lib/httpi/auth/config.rb', line 37

def digest?
  type == :digest
end

#gssnegotiateObject

Enable HTTP Negotiate/SPNEGO authentication.



42
43
44
# File 'lib/httpi/auth/config.rb', line 42

def gssnegotiate
  self.type = :gssnegotiate
end

#gssnegotiate?Boolean

Returns whether to use HTTP Negotiate/SPNEGO auth.

Returns:

  • (Boolean)


47
48
49
# File 'lib/httpi/auth/config.rb', line 47

def gssnegotiate?
  type == :gssnegotiate
end

#http?Boolean

Returns whether to use HTTP basic or dihest auth.

Returns:

  • (Boolean)


52
53
54
# File 'lib/httpi/auth/config.rb', line 52

def http?
  type == :basic || type == :digest
end

#ntlm(*args) ⇒ Object



56
57
58
59
60
61
# File 'lib/httpi/auth/config.rb', line 56

def ntlm(*args)
  return @ntlm if args.empty?

  self.type = :ntlm
  @ntlm = args.flatten.compact
end

#ntlm?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/httpi/auth/config.rb', line 63

def ntlm?
  type == :ntlm
end

#sslObject

Returns the HTTPI::Auth::SSL object.



68
69
70
# File 'lib/httpi/auth/config.rb', line 68

def ssl
  @ssl ||= SSL.new
end

#ssl?Boolean

Returns whether to use SSL client auth.

Returns:

  • (Boolean)


73
74
75
# File 'lib/httpi/auth/config.rb', line 73

def ssl?
  ssl.present?
end