Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug fix for natural person validation #117

Merged
merged 4 commits into from
Feb 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 106 additions & 106 deletions pkg/rvasp/testdata/cert.pem
Original file line number Diff line number Diff line change
@@ -1,121 +1,121 @@
-----BEGIN CERTIFICATE-----
MIIF4zCCA8ugAwIBAgICB5kwDQYJKoZIhvcNAQELBQAwgZQxDDAKBgNVBAYTA1VT
MIIF8DCCA9igAwIBAgICB5kwDQYJKoZIhvcNAQELBQAwgZQxDDAKBgNVBAYTA1VT
QTELMAkGA1UECBMCTUQxEzARBgNVBAcTClF1ZWVuc3Rvd24xFjAUBgNVBAkTDTIx
NSBBbHlubiBXYXkxDjAMBgNVBBETBTIxNjU4MSYwDAYDVQQKEwVUUklTQTAWBgNV
BAoTD1JvdGF0aW9uYWwgTGFiczESMBAGA1UEAxMJdHJpc2EuZGV2MB4XDTIyMDYw
NjIyNDg0MVoXDTIyMTIwNjIzNDg0MVowXTELMAkGA1UEBhMCVVMxCTAHBgNVBAgT
ADEJMAcGA1UEBxMAMQkwBwYDVQQJEwAxCTAHBgNVBBETADESMBAGA1UEChMJbG9j
YWxob3N0MQ4wDAYDVQQDEwVhbGljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBALXlZYRjwSx3Dk/nKRJcf70MhDemOKbXoP1pOxgXPxdjaTB/1Yroh0hL
st8s81Q0RJB2jK4QJLHmrIaJz3QkFHynoQCBP9VxZB9kKH8f1gL6O5gqasRUBSLJ
Ek4OcqSu0y0Wo+EnP73NDgh383dkKFpBvca+pJiKNhZX0bnoDxSpDgPcWHHdJQ6R
LguTFKlppNJkYm3H/U5lCmoS3WY6h2TL7VPdzv2dAGjN61a9Qb0Lbw57nZMAlNVI
YH+2sS9g69pemUG3FIEqLb+TTal/0qsndQRhGP4+nktv4w9CnQpDU71N1pNl6m6K
zDgD1JLIJ5AtLGRFTE1LALq1+guwR340hpgGHblrFDw0QIxaqb8lMv2HGd7XPwY0
qvQrFBYHZ/ChPdhwMFS/TNUkJ9SVRZzG0XqFX3dvJWXYvzV2f7kfj5HUtvvjHlTt
UNXXCqb41ntLRuSYvmfG+4Xh1tr6iBef5kT/VaVU1YA/SS4l5VAGPIoI61I3kJuf
mwvBoZExv6xCVFj9SmsDbWBUozVTR7Ke7/2LUM8Mbj9WFsSvO3tCya0E8zwX7pYD
OoSJ3rT1G4HMHpkGWXmGOY+VuzPiUVgFOqj+baN9RsxAcjdwVffeH8eGol8nm8yn
tK6GzcQkQvmxGqjB8RVFwsyWdErYUaB5TboMQ1XHKIb5W4trN3evAgMBAAGjdTBz
MA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw
DwYDVR0OBAgEBgECAwQFBjAfBgNVHSMEGDAWgBSC/XFyLbwDtF8g35fngMRhZJeW
vDAQBgNVHREECTAHggVhbGljZTANBgkqhkiG9w0BAQsFAAOCAgEAtkwbfmi9RWDk
yhIHToA+aA9Lmr/0M+Xa+gkFEW5YbhmRrHiKy+ldYcGPjbuFCkE+TbufRRHE3lDI
9YlLJ7XSexPGsNjIn+t5X0PoPbBXAVoef1Tevm6cWeOiPk4FATccZ99tV2YJ9mrp
9hyWS7BAQyFfFzUZjgv078KWbfCxvDJvqN+mMZPt99N/Q5mFUMkglAKyo8w/XrJq
4S3k9gxHIqaZp9MXR1O+06SaBNspK+8DMWwbatCSzwdrmlUwOpMn8+YOoSA2x+4r
/l2HWDn8G8s61MMLRQ30ccGCCEMOmbklb27FHIaVRoAcVfyhD3qo2FZ/TStsQQpN
JUpAvwT6yxe+cIVVLEXs1jg6Mo++0Tf9yKR+3p4a8lMhKF3c7OHgUiBPcxDcpDal
lF7iUbpEx6rxcMfddFcxJPD42KamsAXtqL1aF/knPLRPVDVK5+1osDssRK2/9fH4
4t5phqOdAFxrIwHlNyxZ2d/FWhmxxzByln4Gzhx1RC12/3+DLXMRR/62V6s611O7
wOlpfL0uwuYA3Ig4ssNxQS0NofLN35rTkoNmfeVvpd/aLiRM4eQ0vKGrD9cdCClz
v5gXLPxMSvom+U3C2v2p74K0MaBT2qPU6nnUQP4jc8opu14TEMmONpOf4OUhi6rC
IsML38xNy8zZ2gyyg1og/6jsOnOKoPY=
BAoTD1JvdGF0aW9uYWwgTGFiczESMBAGA1UEAxMJdHJpc2EuZGV2MB4XDTIzMDIx
NTIwMTE0OFoXDTIzMDgxNTE5MTE0OFowajEMMAoGA1UEBhMDVVNBMQswCQYDVQQI
EwJNRDETMBEGA1UEBxMKUXVlZW5zdG93bjEJMAcGA1UECRMAMQkwBwYDVQQREwAx
EjAQBgNVBAoTCXRyaXNhLmRldjEOMAwGA1UEAxMFYWxpY2UwggIiMA0GCSqGSIb3
DQEBAQUAA4ICDwAwggIKAoICAQDJgaPxN7LOfEEDSWCAhVdn9VLaHhinmEO3iw5L
lPW/MVH6/nsCK0FZ0KYQX2LNNCPDbgF231Wo5JkXT0CdHVc9Q201SEhizRPfV/gJ
LW3tRke5FLZfBMg0hVi+696vLeCBW2bHiUsVOfq7pskiOZX6W0zfYDACYhz2vvvX
pGLzqUWkFnGaTTMz0RHq7os6Qdb0OhSanCVm211S8VqU1NKytmNLjcSuTCATYyQy
jVAe1u644y7FTn/3KMpvQZo6iYXFRtaLFP7nSFLG/iQCKFRAA6K3e5xMIsyi0jZ1
fWFAZrmbOuWqAdRo/IDhOi4IlLBJILvdVr9uEC9zGcfvmxBetwwPHJ7qmn9LLX6L
qiZLAfO4kbvNnXls+E1VepCVZlGhDtgqe3Mj2q3hcRinSZ9qojP+IG8L03jHEErL
Ws5m6dT7bLEQBIQPEFgrq2qKKIJl4pxujQf616Xk7VgD98E4uSF/DLhbzHsb9uis
SLerQzScZN27k9GrrasPGGyEyb6q7HNovyXVYCdrzo6nfU/NzJA5vdzJC4NdJzO7
aa68sI0ncinWuDib/iUqOYcHLmlgNnOcg6WX2wUmSkIZ4MD4ulbndvfN27b75e8i
DCE1lpuNtIX0TG85hualZiRPzdxn6tIVqFFUfg3/lWgOQIWZxbbCzK9Dbg9DY16d
anWPJQIDAQABo3UwczAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUH
AwIGCCsGAQUFBwMBMA8GA1UdDgQIBAYBAgMEBQYwHwYDVR0jBBgwFoAUNvfEnm7O
CUfj2pKvGvJXNGnzZbUwEAYDVR0RBAkwB4IFYWxpY2UwDQYJKoZIhvcNAQELBQAD
ggIBAMRH4L7jxIhbWZyue8cs8G/3xdm5arMh2vcDy0MoD1uTJ7bejD/ghfHyyKh3
RHpmQDT7LbEZG3SkZHfMfZqgRPcPn1Gufj7m3y7yKmbqgcfW57AIqHPif8smfMJ6
c1WdOeCNFPtsyACor/xA2Gy/FbT34ATZPor3opGtIaW67QzmvOzjXhq5vMseGi1k
Zjz7P9Rk5/+CWc1WVw1Jrlm9zPLsKusIDxvadVAZb9iq3yg8hi2vzIdTTzbRBunX
G5XAM0YQ+3eTKjZRMn4zy/8MyH0T0ZFqTJlRD1OoJSx4L/nEu5RPuavliFIHdZ/a
KciaJuLZxvBq8LAByD85IHU1PVolq2Hp2KLR0LkaePeB/LqI0XGNT+ihrNpdqDBG
Bw6mOtPzrYsuLt0nXxu+xd103Xlde7Npx7OscXSrV+sZihTHCULFr43N8UuYW4q6
arJv2naYNoajby/WOZYvE2PynlLa2LFXCjp69rtoAuSoncCeO2YVT5CLdf4hHnKQ
FsPQfVXVEfJ65DAMPksCpqOZAVGlDFEcjbn8Z/MUXwLYjDcDVV9WAEcaG0IXgMR3
fIYbD47EfMD1fQG+iBu2/dP5EdOfzCcxThUME20phLNiyW1s2nF5ixL/QS4D406e
An9nIaTyZI/rrZ6bRsaXkMaadu+r45eD4d2JRzSwrMLDber4
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGHTCCBAWgAwIBAgICB5YwDQYJKoZIhvcNAQELBQAwgZQxDDAKBgNVBAYTA1VT
QTELMAkGA1UECBMCTUQxEzARBgNVBAcTClF1ZWVuc3Rvd24xFjAUBgNVBAkTDTIx
NSBBbHlubiBXYXkxDjAMBgNVBBETBTIxNjU4MSYwDAYDVQQKEwVUUklTQTAWBgNV
BAoTD1JvdGF0aW9uYWwgTGFiczESMBAGA1UEAxMJdHJpc2EuZGV2MB4XDTIyMDYw
MzAxNTIxMloXDTMyMDYwMzAxNTIxMlowgZQxDDAKBgNVBAYTA1VTQTELMAkGA1UE
BAoTD1JvdGF0aW9uYWwgTGFiczESMBAGA1UEAxMJdHJpc2EuZGV2MB4XDTIyMDkx
NTE1NDcwMVoXDTMyMDkxNTE1NDcwMVowgZQxDDAKBgNVBAYTA1VTQTELMAkGA1UE
CBMCTUQxEzARBgNVBAcTClF1ZWVuc3Rvd24xFjAUBgNVBAkTDTIxNSBBbHlubiBX
YXkxDjAMBgNVBBETBTIxNjU4MSYwDAYDVQQKEwVUUklTQTAWBgNVBAoTD1JvdGF0
aW9uYWwgTGFiczESMBAGA1UEAxMJdHJpc2EuZGV2MIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA1MANeKl0AOjON+gdp2R0c7iVgkzAEgMZYeE838Y/MYKf
tx2UV9UEjGTfKpMxch3TzRkqHAlyLDzvVKYSpCtDzyDYKBb4DD8lUltoqPHi143C
GKSyVP+KcF/5ilaVcKB+zenoFMeBx4aRewpMgh0Ycn0CVSbkyOVy5aVDvfA4UFpC
xZ73XX+A/3v/aFyg565xKYtI0mcv6EBorjbqOUkQhOikAao3P4nSZ1p8AHI5diAB
dNKpRLJ3e1kFeGgnCYZ2B4IxTRqwqpSFFqpL/y5nomRm6Bp1oDPhwZ7sbp9guUS3
+6wAuvArO8dMrMYf3udkLa5xhWhvE/2lT9EgLQZwpfBTcgA8NDDsn6o011TAoRqc
amS9qGKGYUKRHr+b7HEzvmdrkpLnvx3bWi8EgUuYxyTn9U5dO63gbjBFkGUU94bG
opjiu4+bh5KMYk4h8j05+yyiIjS0Erspcyt4UyQK6646JNUmrJX2Qy+4b36UNS45
Yt5vfJ/GHU9XyPdxlPxWzXpolVFmZrTQkXEcJ5vN/qEvaKD8vpsOVfGBJSpvbv52
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
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
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
nBtVNsOVgXpJIgG+Qyo/YAeS98hZDuc=
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
1c7WwZcUVdV0NCFQ7k++KycaEufvf6k=
-----END PRIVATE KEY-----
36 changes: 30 additions & 6 deletions pkg/rvasp/transfer.go
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,21 @@ func validateIdentityPayload(identity *ivms101.IdentityPayload, requireBeneficia
}

// Validate the beneficiary person
if err = identity.Beneficiary.BeneficiaryPersons[0].GetNaturalPerson().Validate(); err != nil {
log.Warn().Err(err).Msg("beneficiary person validation error")
return protocol.Errorf(protocol.ValidationError, "beneficiary person validation error: %s", err)
beneficiaryPerson := identity.Beneficiary.BeneficiaryPersons[0].GetPerson()
switch person := beneficiaryPerson.(type) {
case *ivms101.Person_NaturalPerson:
if err = person.NaturalPerson.Validate(); err != nil {
log.Warn().Err(err).Msg("beneficiary natural person validation error")
return protocol.Errorf(protocol.ValidationError, "beneficiary natural person validation error: %s", err)
}
case *ivms101.Person_LegalPerson:
if err = person.LegalPerson.Validate(); err != nil {
log.Warn().Err(err).Msg("beneficiary legal person validation error")
return protocol.Errorf(protocol.ValidationError, "beneficiary legal person validation error: %s", err)
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need a default case to handle the case where the beneficiary person is nil (or something that happens to fit the isPerson_Person interface but is not a Person_NaturalPerson or Person_LegalPerson).

See this example, if a nil object is type checked then the default case is triggered: https://go.dev/play/p/aHIX6AOtfJz

default:
log.Warn().Msg(fmt.Sprintf("unknown beneficiary person type: %T", person))
return protocol.Errorf(protocol.ValidationError, "unknown beneficiary person type: %T", person)
}

// Check that the account number is present
Expand All @@ -246,9 +258,21 @@ func validateIdentityPayload(identity *ivms101.IdentityPayload, requireBeneficia
}

// Validate the beneficiary vasp entity
if err = identity.BeneficiaryVasp.BeneficiaryVasp.GetLegalPerson().Validate(); err != nil {
log.Warn().Err(err).Msg("beneficiary vasp entity validation error")
return protocol.Errorf(protocol.ValidationError, "beneficiary vasp entity validation error: %s", err)
beneficiaryVaspPerson := identity.BeneficiaryVasp.BeneficiaryVasp.GetPerson()
switch person := beneficiaryVaspPerson.(type) {
case *ivms101.Person_NaturalPerson:
if err = person.NaturalPerson.Validate(); err != nil {
log.Warn().Err(err).Msg("beneficiary vasp natural person validation error")
return protocol.Errorf(protocol.ValidationError, "beneficiary vasp natural person validation error: %s", err)
}
case *ivms101.Person_LegalPerson:
if err = person.LegalPerson.Validate(); err != nil {
log.Warn().Err(err).Msg("beneficiary vasp legal person validation error")
return protocol.Errorf(protocol.ValidationError, "beneficiary vasp legal person validation error: %s", err)
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also add a default case here.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you also create a follow up story to add a test for validateIdentityPayload? Specifically I want to make sure this fix avoids the panic.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Default added and story created

default:
log.Warn().Msg(fmt.Sprintf("unknown beneficiary person type: %T", person))
return protocol.Errorf(protocol.ValidationError, "unknown beneficiary person type: %T", person)
}
}
return nil
Expand Down