Skip to content

Commit

Permalink
Add bulk CPE lookup support
Browse files Browse the repository at this point in the history
  • Loading branch information
pwnbus committed Oct 16, 2015
1 parent b75d296 commit dba7d3d
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ log/*
tmp/*
!tmp/.gitkeep
coverage
config/database.yml
12 changes: 9 additions & 3 deletions lib/cve_server/app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,16 @@ class App < Sinatra::Base
end
end

get '/v1/cpe/:cpe' do |cpe|
bad_request unless valid_cpe?(cpe)
get '/v1/cpe/:cpes' do |cpes|
# Multiple cpes were included
if cpes.include?(",")
bad_request unless valid_cpes?(cpes)
@cves = CVEServer::Cve.all_cpes_equal(cpes.downcase)
else
bad_request unless valid_cpe?(cpes)
@cves = CVEServer::Cve.all_cpe_equal(cpes.downcase)
end

@cves = CVEServer::Cve.all_cpe_equal(cpe.downcase)
if @cves.count > 0
json_resp @cves
else
Expand Down
6 changes: 6 additions & 0 deletions lib/cve_server/cve.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ def self.all_cpe_equal(cpe)
end.uniq.sort
end

def self.all_cpes_equal(cpes)
cpes.split(",").collect do |cpe|
self.all_cpe_equal(cpe)
end.flatten.uniq.sort
end

def self.reduce_cpes
map_reduce(mapper, reducer, map_reducer_opts).count
end
Expand Down
5 changes: 5 additions & 0 deletions lib/cve_server/helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,10 @@ def valid_cve?(cve)
def valid_cpe?(cpe)
cpe.match(/^[a-z0-9_\%\~\.\-\:]+$/i)
end

def valid_cpes?(cpes)
cpes.split(",").all? { |cpe| valid_cpe?(cpe) }
end

end
end

0 comments on commit dba7d3d

Please sign in to comment.