validator
validator copied to clipboard
add validation for base64 url without = padding
Fixes Or Enhances
Make sure that you've checked the boxes below before you submit PR:
- [x] Tests exist or have been written that cover this particular change.
Change:
As flagged in this issue, validation fails for some strings encoded using base64.RawURLEncoding function.
The discussion around whether padding should be considered optional or not is rather long. Some of it can be found here: https://github.com/golang/go/issues/4237. Following which, RawURLEncoding was introduced in base64 package.
The general rule of thumb regarding padding seems to be that you MUST be padding when encoding, but SHOULD be able to handle both padded and unpadded inputs when decoding. Therefore, we should provide support for validating unpadded encoded inputs.
Instead of modifying the "base64url" tag to accept unpadded inputs, it makes more sense to have a separate tag - "base64rawurl". This way it would be clear to the developer and they would use one or the other, or both back to back, depending on their usecase.
PS: formatting changes in doc.go because of go 1.19 updates. Please lmk if I should revert them.
Closes #1002
@go-playground/validator-maintainers
Coverage: 74.255% (+0.005%) from 74.25% when pulling e8f6a169b11e6bfeb9167d1d98329fddfe421262 on yasoobh:master into 1c1f70d35b58e3ecf9416b30f7b3804e8e68dee3 on go-playground:master.
Will this change be added to any version soon?
Any chance to have the last code review needed? 🥹
@deankarn you are awesome! many thx for this gorgeous lib!