nexpose 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -5
- data/lib/nexpose/connection.rb +7 -4
- data/lib/nexpose/user.rb +6 -3
- data/lib/nexpose/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a180ab3eff433d31088604fa0cbebe07a7be22c
|
4
|
+
data.tar.gz: b50d30db2b8eb0d351dae295214cdd0f8e63c803
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63bc634571fb06d9b4a40870b9e102cc8d53d67375052e34295a4e0f1c37167f24912a30b2c1b2d3dd205f8d60af091905fa8027b0b54bfd8a3cd0923f9e8488
|
7
|
+
data.tar.gz: 3fecd48a480fd0cb88a855e08dea01ef80beeb25cbbfd189a77fda8bc2fff716d8b4fe564265df41d55c2e81caf330784a39f3bc465bfcec3582fa303abbd4bd
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nexpose (
|
5
|
-
multipart-post (~> 2.0.0)
|
4
|
+
nexpose (3.1.0)
|
6
5
|
|
7
6
|
GEM
|
8
7
|
remote: https://rubygems.org/
|
@@ -17,8 +16,7 @@ GEM
|
|
17
16
|
safe_yaml (~> 1.0.0)
|
18
17
|
diff-lcs (1.2.5)
|
19
18
|
docile (1.1.5)
|
20
|
-
multi_json (1.
|
21
|
-
multipart-post (2.0.0)
|
19
|
+
multi_json (1.10.1)
|
22
20
|
parser (2.2.0.3)
|
23
21
|
ast (>= 1.1, < 3.0)
|
24
22
|
powerpack (0.1.0)
|
@@ -27,7 +25,7 @@ GEM
|
|
27
25
|
rspec-core (~> 3.2.0)
|
28
26
|
rspec-expectations (~> 3.2.0)
|
29
27
|
rspec-mocks (~> 3.2.0)
|
30
|
-
rspec-core (3.2.
|
28
|
+
rspec-core (3.2.1)
|
31
29
|
rspec-support (~> 3.2.0)
|
32
30
|
rspec-expectations (3.2.0)
|
33
31
|
diff-lcs (>= 1.2.0, < 2.0)
|
data/lib/nexpose/connection.rb
CHANGED
@@ -36,6 +36,8 @@ module Nexpose
|
|
36
36
|
attr_reader :password
|
37
37
|
# The URL for communication
|
38
38
|
attr_reader :url
|
39
|
+
# The token used to login to the NSC
|
40
|
+
attr_reader :token
|
39
41
|
|
40
42
|
# The last XML request sent by this object, useful for debugging.
|
41
43
|
attr_reader :request_xml
|
@@ -43,17 +45,18 @@ module Nexpose
|
|
43
45
|
attr_reader :response_xml
|
44
46
|
|
45
47
|
# A constructor to load a Connection object from a URI
|
46
|
-
def self.from_uri(uri, user, pass, silo_id = nil)
|
48
|
+
def self.from_uri(uri, user, pass, silo_id = nil, token = nil)
|
47
49
|
uri = URI.parse(uri)
|
48
|
-
new(uri.host, user, pass, uri.port, silo_id)
|
50
|
+
new(uri.host, user, pass, uri.port, silo_id, token)
|
49
51
|
end
|
50
52
|
|
51
53
|
# A constructor for Connection
|
52
|
-
def initialize(ip, user, pass, port = 3780, silo_id = nil)
|
54
|
+
def initialize(ip, user, pass, port = 3780, silo_id = nil, token = nil)
|
53
55
|
@host = ip
|
54
56
|
@port = port
|
55
57
|
@username = user
|
56
58
|
@password = pass
|
59
|
+
@token = token
|
57
60
|
@silo_id = silo_id
|
58
61
|
@session_id = nil
|
59
62
|
@url = "https://#{@host}:#{@port}/api/API_VERSION/xml"
|
@@ -62,7 +65,7 @@ module Nexpose
|
|
62
65
|
# Establish a new connection and Session ID
|
63
66
|
def login
|
64
67
|
begin
|
65
|
-
login_hash = {'sync-id' => 0, 'password' => @password, 'user-id' => @username}
|
68
|
+
login_hash = {'sync-id' => 0, 'password' => @password, 'user-id' => @username, 'token' => @token}
|
66
69
|
login_hash['silo-id'] = @silo_id if @silo_id
|
67
70
|
r = execute(make_xml('LoginRequest', login_hash))
|
68
71
|
if r.success
|
data/lib/nexpose/user.rb
CHANGED
@@ -90,15 +90,16 @@ module Nexpose
|
|
90
90
|
# but caller can override (e.g., using LDAP authenticator).
|
91
91
|
attr_accessor :authsrcid
|
92
92
|
# Optional fields
|
93
|
-
attr_accessor :email, :password, :sites, :groups
|
93
|
+
attr_accessor :email, :password, :sites, :groups, :token
|
94
94
|
# 1 to enable this user, 0 to disable
|
95
95
|
attr_accessor :enabled
|
96
96
|
# Boolean values
|
97
97
|
attr_accessor :all_sites, :all_groups
|
98
98
|
|
99
|
-
def initialize(name, full_name, password, role_name = 'user', id = -1, enabled = 1, email = nil, all_sites = false, all_groups = false)
|
99
|
+
def initialize(name, full_name, password, role_name = 'user', id = -1, enabled = 1, email = nil, all_sites = false, all_groups = false, token = nil)
|
100
100
|
@name = name
|
101
101
|
@password = password
|
102
|
+
@token = token
|
102
103
|
@role_name = role_name
|
103
104
|
@authsrcid = ('global-admin'.eql? @role_name) ? '1' : '2'
|
104
105
|
@id = id
|
@@ -119,6 +120,7 @@ module Nexpose
|
|
119
120
|
xml << %Q{ fullname="#{replace_entities(@full_name)}"}
|
120
121
|
xml << %Q{ role-name="#{replace_entities(@role_name)}"}
|
121
122
|
xml << %Q{ password="#{replace_entities(@password)}"} if @password
|
123
|
+
xml << %Q{ token="#{replace_entities(@token)}"} if @token
|
122
124
|
xml << %Q{ email="#{replace_entities(@email)}"} if @email
|
123
125
|
xml << %Q{ enabled="#{@enabled}"}
|
124
126
|
# These two fields are keying off role_name to work around a defect.
|
@@ -166,12 +168,13 @@ module Nexpose
|
|
166
168
|
|
167
169
|
email = config.attributes['email']
|
168
170
|
password = config.attributes['password']
|
171
|
+
token = config.attributes['token']
|
169
172
|
enabled = config.attributes['enabled'].to_i
|
170
173
|
all_sites = config.attributes['allSites'] == 'true' ? true : false
|
171
174
|
all_groups = config.attributes['allGroups'] == 'true' ? true : false
|
172
175
|
# Not trying to load sites and groups.
|
173
176
|
# Looks like API currently doesn't return that info to load.
|
174
|
-
return User.new(name, fullname, password, role_name, id, enabled, email, all_sites, all_groups)
|
177
|
+
return User.new(name, fullname, password, role_name, id, enabled, email, all_sites, all_groups, token)
|
175
178
|
end
|
176
179
|
end
|
177
180
|
end
|
data/lib/nexpose/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nexpose
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HD Moore
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: bundler
|
@@ -212,9 +212,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
212
|
version: '0'
|
213
213
|
requirements: []
|
214
214
|
rubyforge_project:
|
215
|
-
rubygems_version: 2.4.
|
215
|
+
rubygems_version: 2.4.8
|
216
216
|
signing_key:
|
217
217
|
specification_version: 4
|
218
218
|
summary: Ruby API for Rapid7 Nexpose
|
219
219
|
test_files: []
|
220
|
-
has_rdoc:
|