def ssl_parameters(poolnum, fallback)
params = {
:cert_file => get_cert_file(poolnum),
:key_file => get_key_file(poolnum),
:ts_files => get_option("activemq.pool.#{poolnum}.ssl.ca", false),
:ciphers => get_option("activemq.pool.#{poolnum}.ssl.ciphers", false),
}
raise "cert, key and ca has to be supplied for verified SSL mode" unless params[:cert_file] && params[:key_file] && params[:ts_files]
raise "Cannot find certificate file #{params[:cert_file]}" unless File.exist?(params[:cert_file])
raise "Cannot find key file #{params[:key_file]}" unless File.exist?(params[:key_file])
params[:ts_files].split(",").each do |ca|
raise "Cannot find CA file #{ca}" unless File.exist?(ca)
end
begin
::Stomp::SSLParams.new(params)
rescue NameError
raise "Stomp gem >= 1.2.2 is needed"
end
rescue Exception => e
if fallback
Log.warn("Failed to set full SSL verified mode, falling back to unverified: #{e.class}: #{e}")
return true
else
Log.error("Failed to set full SSL verified mode: #{e.class}: #{e}")
raise(e)
end
end