module Proxy::OpenSCAP
Constants
- VERSION
Public Class Methods
common_name(request)
click to toggle source
# File lib/foreman-proxy_openscap/openscap_lib.rb, line 18 def self.common_name(request) client_cert = request.env['SSL_CLIENT_CERT'] raise Proxy::Error::Unauthorized, "Client certificate required!" if client_cert.to_s.empty? begin client_cert = OpenSSL::X509::Certificate.new(client_cert) rescue OpenSSL::OpenSSLError => e raise Proxy::Error::Unauthorized, e.message end cn = client_cert.subject.to_a.detect { |name, value| name == 'CN' } cn = cn[1] unless cn.nil? raise Proxy::Error::Unauthorized, "Common Name not found in the certificate" unless cn return cn end
send_spool_to_foreman()
click to toggle source
# File lib/foreman-proxy_openscap/openscap_lib.rb, line 53 def self.send_spool_to_foreman arf_dir = File.join(Proxy::OpenSCAP::Plugin.settings.spooldir, "/arf") return unless File.exists? arf_dir ForemanForwarder.new.do arf_dir end
spool_arf_dir(common_name, policy_name, date)
click to toggle source
# File lib/foreman-proxy_openscap/openscap_lib.rb, line 33 def self.spool_arf_dir(common_name, policy_name, date) validate_policy_name policy_name validate_date date dir = Proxy::OpenSCAP::Plugin.settings.spooldir + "/arf/#{common_name}/#{policy_name}/#{date}/" begin FileUtils.mkdir_p dir rescue StandardError => e logger.error "Could not create '#{dir}' directory: #{e.message}" raise e end dir end
store_arf(spool_arf_dir, data)
click to toggle source
# File lib/foreman-proxy_openscap/openscap_lib.rb, line 46 def self.store_arf(spool_arf_dir, data) filename = Digest::SHA256.hexdigest data target_path = spool_arf_dir + filename File.open(target_path,'w') { |f| f.write(data) } return target_path end
Private Class Methods
validate_date(date)
click to toggle source
# File lib/foreman-proxy_openscap/openscap_lib.rb, line 66 def self.validate_date date begin Date.strptime(date, '%Y-%m-%d') rescue raise Proxy::Error::BadRequest, "Malformed date" end end
validate_policy_name(name)
click to toggle source
# File lib/foreman-proxy_openscap/openscap_lib.rb, line 60 def self.validate_policy_name name unless /[\w-]+/ =~ name raise Proxy::Error::BadRequest, "Malformed policy name" end end