Попробуйте кодировать {"alg":"RS256","typ":"JWT","kid":"1234"}
в base64
Вы увидите eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMzQifQ==
==
- это отступ
Я думаю, что проблема заключается в DatatypeConverter.parseBase64Binary
использование представления xsd: base64Binary (RFC 2045). Но в RFC 2045 заполнение является обязательным.
Вы можете использовать этот способ (java.util.Base64):
public void test() {
String encodedToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMzQifQ";
System.out.println(new String(Base64.getDecoder().decode(encodedToken.getBytes())));
}
java.util.Base64 использует RFC 4648 (заполнение необязательно).