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
|
||||
|
||||
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)
|
||||
next
|
||||
else
|
||||
|
@ -434,20 +434,25 @@ class Epp::EppDomain < Domain
|
|||
res[:max_sig_life] = parsed_frame.css('maxSigLife').first.try(:text)
|
||||
|
||||
parsed_frame.css('dsData').each do |x|
|
||||
kd = x.css('keyData').first
|
||||
res[:ds_data] << {
|
||||
data = {
|
||||
ds_key_tag: x.css('keyTag').first.try(:text),
|
||||
ds_alg: x.css('alg').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),
|
||||
protocol: kd.css('protocol').first.try(:text),
|
||||
alg: kd.css('alg').first.try(:text),
|
||||
public_key: kd.css('pubKey').first.try(:text)
|
||||
}
|
||||
}) if kd
|
||||
|
||||
res[:ds_data] << data
|
||||
end
|
||||
|
||||
parsed_frame.css('* > keyData').each do |x|
|
||||
parsed_frame.xpath('keyData').each do |x|
|
||||
res[:key_data] << {
|
||||
flags: x.css('flags').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[:msg]).to eq('DNS keys count must be between 0-1')
|
||||
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
|
||||
|
||||
context 'with juridical persion as an owner' do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue