Module: Conjur::Authn
- Defined in:
- lib/conjur/authn.rb
Defined Under Namespace
Classes: NoCredentialsError
Class Method Summary
collapse
Class Method Details
.ask_for_credentials(options = {}) ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/conjur/authn.rb', line 97
def ask_for_credentials(options = {})
raise NoCredentialsError if options[:noask]
require 'highline'
require 'conjur/api'
hl = HighLine.new $stdin, $stderr
user = options[:username] || hl.ask("Enter your username to log into Conjur: ")
pass = options[:password] || hl.ask("Please enter #{options[:username] ? [ options[:username] , "'s" ].join : "your"} password (it will not be echoed): "){ |q| q.echo = false }
api_key = if cas_server = options[:"cas-server"]
Conjur::API.login_cas(user, pass, cas_server)
else
Conjur::API.login(user, pass)
end
@credentials = [user, api_key]
end
|
.authenticate(options = {}) ⇒ Object
43
44
45
46
|
# File 'lib/conjur/authn.rb', line 43
def authenticate(options = {})
require 'conjur/api'
Conjur::API.authenticate *get_credentials(options)
end
|
.connect(cls = nil, options = {}) ⇒ Object
118
119
120
121
122
123
124
125
126
127
128
129
|
# File 'lib/conjur/authn.rb', line 118
def connect(cls = nil, options = {})
if cls.nil?
require 'conjur/api'
require 'conjur/base'
cls = Conjur::API
end
if token = token_from_environment
cls.new_from_token token
else
cls.new_from_key *get_credentials(options)
end
end
|
.delete_credentials ⇒ Object
48
49
50
51
|
# File 'lib/conjur/authn.rb', line 48
def delete_credentials
netrc.delete Conjur.configuration.authn_url
netrc.save
end
|
.env_credentials ⇒ Object
72
73
74
75
76
77
78
|
# File 'lib/conjur/authn.rb', line 72
def env_credentials
if (login = ENV['CONJUR_AUTHN_LOGIN']) && (api_key = ENV['CONJUR_AUTHN_API_KEY'])
[ login, api_key ]
else
nil
end
end
|
.fetch_credentials(options = {}) ⇒ Object
Also known as:
save_credentials
84
85
86
87
|
# File 'lib/conjur/authn.rb', line 84
def fetch_credentials(options = {})
ask_for_credentials(options)
write_credentials
end
|
.get_credentials(options = {}) ⇒ Object
68
69
70
|
# File 'lib/conjur/authn.rb', line 68
def get_credentials(options = {})
@credentials ||= (env_credentials || read_credentials || fetch_credentials(options))
end
|
.login(options = {}) ⇒ Object
38
39
40
41
|
# File 'lib/conjur/authn.rb', line 38
def login(options = {})
delete_credentials
get_credentials(options)
end
|
.netrc ⇒ Object
53
54
55
|
# File 'lib/conjur/authn.rb', line 53
def netrc
@netrc ||= read_netrc
end
|
.read_credentials ⇒ Object
80
81
82
|
# File 'lib/conjur/authn.rb', line 80
def read_credentials
netrc[Conjur.configuration.authn_url]
end
|
.read_netrc ⇒ Object
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/conjur/authn.rb', line 57
def read_netrc
args = []
if path = Conjur::Config[:netrc_path]
args.unshift(path)
else
path = Netrc.default_path
end
fail_if_world_readable path
Netrc.read(*args)
end
|
.write_credentials ⇒ Object
91
92
93
94
95
|
# File 'lib/conjur/authn.rb', line 91
def write_credentials
netrc[Conjur.configuration.authn_url] = @credentials
netrc.save
@credentials
end
|