mirror of
https://github.com/internetee/registry.git
synced 2025-07-20 17:55:55 +02:00
Fix ds data and key data xml parsing
This commit is contained in:
parent
9d302ac29d
commit
a1c2dc2175
2 changed files with 71 additions and 6 deletions
|
@ -197,7 +197,7 @@ class Epp::EppDomain < Domain
|
||||||
end
|
end
|
||||||
|
|
||||||
dnssec_data[:ds_data].each do |ds_data|
|
dnssec_data[:ds_data].each do |ds_data|
|
||||||
if ds_data[:key_data].any? && !ds_data_with_keys_allowed
|
if ds_data[:public_key] && !ds_data_with_keys_allowed
|
||||||
errors.add(:base, :ds_data_with_keys_not_allowed)
|
errors.add(:base, :ds_data_with_keys_not_allowed)
|
||||||
next
|
next
|
||||||
else
|
else
|
||||||
|
@ -434,20 +434,25 @@ class Epp::EppDomain < Domain
|
||||||
res[:max_sig_life] = parsed_frame.css('maxSigLife').first.try(:text)
|
res[:max_sig_life] = parsed_frame.css('maxSigLife').first.try(:text)
|
||||||
|
|
||||||
parsed_frame.css('dsData').each do |x|
|
parsed_frame.css('dsData').each do |x|
|
||||||
kd = x.css('keyData').first
|
data = {
|
||||||
res[:ds_data] << {
|
|
||||||
ds_key_tag: x.css('keyTag').first.try(:text),
|
ds_key_tag: x.css('keyTag').first.try(:text),
|
||||||
ds_alg: x.css('alg').first.try(:text),
|
ds_alg: x.css('alg').first.try(:text),
|
||||||
ds_digest_type: x.css('digestType').first.try(:text),
|
ds_digest_type: x.css('digestType').first.try(:text),
|
||||||
ds_digest: x.css('digest').first.try(:text),
|
ds_digest: x.css('digest').first.try(:text)
|
||||||
|
}
|
||||||
|
|
||||||
|
kd = x.css('keyData').first
|
||||||
|
data.merge!({
|
||||||
flags: kd.css('flags').first.try(:text),
|
flags: kd.css('flags').first.try(:text),
|
||||||
protocol: kd.css('protocol').first.try(:text),
|
protocol: kd.css('protocol').first.try(:text),
|
||||||
alg: kd.css('alg').first.try(:text),
|
alg: kd.css('alg').first.try(:text),
|
||||||
public_key: kd.css('pubKey').first.try(:text)
|
public_key: kd.css('pubKey').first.try(:text)
|
||||||
}
|
}) if kd
|
||||||
|
|
||||||
|
res[:ds_data] << data
|
||||||
end
|
end
|
||||||
|
|
||||||
parsed_frame.css('* > keyData').each do |x|
|
parsed_frame.xpath('keyData').each do |x|
|
||||||
res[:key_data] << {
|
res[:key_data] << {
|
||||||
flags: x.css('flags').first.try(:text),
|
flags: x.css('flags').first.try(:text),
|
||||||
protocol: x.css('protocol').first.try(:text),
|
protocol: x.css('protocol').first.try(:text),
|
||||||
|
|
|
@ -507,6 +507,66 @@ describe 'EPP Domain', epp: true do
|
||||||
expect(response[:result_code]).to eq('2004')
|
expect(response[:result_code]).to eq('2004')
|
||||||
expect(response[:msg]).to eq('DNS keys count must be between 0-1')
|
expect(response[:msg]).to eq('DNS keys count must be between 0-1')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'creates domain with ds data' do
|
||||||
|
pending true
|
||||||
|
xml = domain_create_xml({}, {
|
||||||
|
_other: [
|
||||||
|
{ dsData: {
|
||||||
|
keyTag: { value: '12345' },
|
||||||
|
alg: { value: '3' },
|
||||||
|
digestType: { value: '1' },
|
||||||
|
digest: { value: '49FD46E6C4B45C55D4AC' }
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
|
||||||
|
epp_request(xml, :xml)
|
||||||
|
|
||||||
|
d = Domain.first
|
||||||
|
ds = d.dnskeys.first
|
||||||
|
expect(ds.ds_key_tag).to eq('12345')
|
||||||
|
expect(ds.ds_alg).to eq(3)
|
||||||
|
expect(ds.ds_digest_type).to eq(1)
|
||||||
|
expect(ds.ds_digest).to eq('49FD46E6C4B45C55D4AC')
|
||||||
|
expect(ds.flags).to be_nil
|
||||||
|
expect(ds.protocol).to be_nil
|
||||||
|
expect(ds.alg).to be_nil
|
||||||
|
expect(ds.public_key).to be_nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'creates domain with ds data with key' do
|
||||||
|
xml = domain_create_xml({}, {
|
||||||
|
_other: [
|
||||||
|
{ dsData: {
|
||||||
|
keyTag: { value: '12345' },
|
||||||
|
alg: { value: '3' },
|
||||||
|
digestType: { value: '1' },
|
||||||
|
digest: { value: '49FD46E6C4B45C55D4AC' },
|
||||||
|
keyData: {
|
||||||
|
flags: { value: '0' },
|
||||||
|
protocol: { value: '3' },
|
||||||
|
alg: { value: '5' },
|
||||||
|
pubKey: { value: '700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
|
||||||
|
r = epp_request(xml, :xml)
|
||||||
|
|
||||||
|
d = Domain.first
|
||||||
|
ds = d.dnskeys.first
|
||||||
|
expect(ds.ds_key_tag).to eq('12345')
|
||||||
|
expect(ds.ds_alg).to eq(3)
|
||||||
|
expect(ds.ds_digest_type).to eq(1)
|
||||||
|
expect(ds.ds_digest).to eq('49FD46E6C4B45C55D4AC')
|
||||||
|
expect(ds.flags).to eq(0)
|
||||||
|
expect(ds.protocol).to eq(3)
|
||||||
|
expect(ds.alg).to eq(5)
|
||||||
|
expect(ds.public_key).to eq('700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f')
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with juridical persion as an owner' do
|
context 'with juridical persion as an owner' do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue