Skip to content

Instantly share code, notes, and snippets.

@kubicek
Created December 29, 2012 17:50
Show Gist options
  • Save kubicek/4408309 to your computer and use it in GitHub Desktop.
Save kubicek/4408309 to your computer and use it in GitHub Desktop.
Knihovna pro přímou registraci v systému MojeID
require "rubygems"
require "net/https"
require "uri"
require "json"
require "configatron"
configatron.mojeid_direct.uri="https://mojeid.fred.nic.cz/registration/direct/"
configatron.mojeid_direct.cacert_file="CZ.NIC-cacert.pem"
configatron.mojeid_direct.pem_file="our-test.pem"
configatron.mojeid_direct.realm="https://admin.xnet.cz"
class MojeID
def self.register(user_data)
# prepare registration data
user_data.merge!(
"realm" => configatron.mojeid_direct.realm,
"registration_nonce" => "1"
)
# prepare secure connection
uri = URI.parse(configatron.mojeid_direct.uri)
pem = File.read(configatron.mojeid_direct.pem_file)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(pem)
http.ca_file = configatron.mojeid_direct.cacert_file
http.key = OpenSSL::PKey::RSA.new(pem)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
# send request to MojeID
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data(user_data)
raw_response = http.request(request)
# process response
response = JSON.parse(raw_response.body)
result = case response['status']
when "SUCCESS" then puts "OK"
when "ERROR" then puts "ERROR: " + response['reason']
when "FAILURE" then puts "FAILS:\n" + response['errors'].collect{|k,v| "#{k} - #{v['msg']}"}.join("\n")
end
end
end
MojeID.register(
"username" => "jnovak1234",
"first_name" => "J",
"last_name" => "Novák",
"address__default__street1" => "U testu 123",
"address__default__city" => "Praha",
"address__default__postal_code" => "123 00",
"address__default__country" => "CZ",
"email__default__email" => "novak@nic.cz",
"phone__default__number" => "+420.728001002"
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment