mirror of
https://github.com/internetee/registry.git
synced 2025-05-18 02:09:39 +02:00
Basic domain check command implementation
This commit is contained in:
parent
f8757891ef
commit
cd52da3f8f
8 changed files with 49 additions and 9 deletions
|
@ -67,8 +67,8 @@ For development configuration, add:
|
|||
SetHandler cgi-script
|
||||
</Directory>
|
||||
|
||||
Listen 700
|
||||
<VirtualHost *:700>
|
||||
Listen 701
|
||||
<VirtualHost *:701>
|
||||
SSLEngine on
|
||||
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
|
||||
SSLCertificateFile /etc/apache2/ssl/apache.crt
|
||||
|
@ -89,6 +89,8 @@ For development configuration, add:
|
|||
</IfModule>
|
||||
```
|
||||
|
||||
Note: Its best to go with two virtual hosts, one for test and one for dev, then you don't have to worry about quitting the dev appserver for running tests (because of colliding ports).
|
||||
|
||||
For plain TCP EPP configuration, see below (may be useful for debugging purposes).
|
||||
|
||||
* `sudo a2ensite epp_ssl`
|
||||
|
@ -98,7 +100,7 @@ Try it out:
|
|||
|
||||
* Fire up your appserver on port 8989 (This setup is tested with Unicorn)
|
||||
* `cd $mod_epp`
|
||||
* `./epptelnet.pl localhost 700 -s`
|
||||
* `./epptelnet.pl localhost 701 -s`
|
||||
|
||||
You should receive the greeting from the registry server.
|
||||
Wait for the greeting message on the STD, then send EPP/TCP frame:
|
||||
|
|
|
@ -12,4 +12,9 @@ class Epp::CommandsController < ApplicationController
|
|||
type = OBJECT_TYPES[parsed_frame.css('create create').attr('schemaLocation').value]
|
||||
send("create_#{type}")
|
||||
end
|
||||
|
||||
def check
|
||||
type = OBJECT_TYPES[parsed_frame.css('check check').attr('schemaLocation').value]
|
||||
send("check_#{type}")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module Epp::CommandsHelper
|
||||
def command_params
|
||||
node_set = parsed_frame.css('epp command create create').children.select(&:element?)
|
||||
def command_params_for type
|
||||
node_set = parsed_frame.css("epp command #{type} #{type}").children.select(&:element?)
|
||||
node_set.inject({}) {|hash, obj| hash[obj.name.to_sym] = obj.text;hash }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,8 +4,17 @@ module Epp::DomainsHelper
|
|||
render '/epp/domains/create'
|
||||
end
|
||||
|
||||
def check_domain
|
||||
cp = command_params_for('check')
|
||||
@domain = cp[:name]
|
||||
|
||||
render '/epp/domains/check'
|
||||
end
|
||||
|
||||
### HELPER METHODS ###
|
||||
|
||||
def domain_params
|
||||
cp = command_params
|
||||
cp = command_params_for('create')
|
||||
{
|
||||
name: cp[:name],
|
||||
registrar_id: current_epp_user.registrar.try(:id),
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
xml.epp_head do
|
||||
xml.bla
|
||||
xml.response do
|
||||
xml.result('code' => '1000') do
|
||||
xml.msg 'Command completed successfully'
|
||||
end
|
||||
|
||||
xml.resData do
|
||||
xml.tag!('domain:chkData', 'xmlns:domain' => 'http://www.nic.cz/xml/epp/domain-1.4', 'xsi:schemaLocation' => 'http://www.nic.cz/xml/epp/domain-1.4 domain-1.4.xsd') do
|
||||
xml.tag!('domain:cd') do
|
||||
xml.tag!('domain:name', @domain, 'avail' => 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
xml << render('/epp/shared/trID')
|
||||
end
|
||||
end
|
||||
|
|
4
app/views/epp/shared/_trID.xml.builder
Normal file
4
app/views/epp/shared/_trID.xml.builder
Normal file
|
@ -0,0 +1,4 @@
|
|||
xml.trID do
|
||||
xml.clTRID params[:clTRID]
|
||||
xml.svTRID @svTRID
|
||||
end
|
|
@ -1,7 +1,7 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe 'EPP Domain', epp: true do
|
||||
let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'test', password: 'test'}) }
|
||||
let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'test', password: 'test', port: 701}) }
|
||||
|
||||
context 'with valid user' do
|
||||
before(:each) { Fabricate(:epp_user) }
|
||||
|
@ -14,5 +14,11 @@ describe 'EPP Domain', epp: true do
|
|||
expect(Domain.first.registrar.name).to eq('Zone Media OÜ')
|
||||
end
|
||||
|
||||
it 'checks domain' do
|
||||
response = epp_request('domains/check.xml')
|
||||
expect(response[:result_code]).to eq('1000')
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe 'EPP Session', epp: true do
|
||||
let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'test', password: 'test'}) }
|
||||
let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'test', password: 'test', port: 701}) }
|
||||
|
||||
context 'when not connected' do
|
||||
it 'greets client upon connection' do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue