Why Does this happen.
1) Application Encoding Settings.
Make sure your application is set to use the right encoding mechanism. the most important. (UTF-8)
For example :- setting default in encoding in Apache Velocity
Throughout my professional and personal journey in software development, I've come across various technical challenges to tackle. These instances serve as valuable examples that I wish to retain. My hope is that they prove beneficial to fellow developers facing similar hurdles.
import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Base64;
import java.util.Date;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.TextCodec;
public class JwtTokenUtilRSA {
public static void main(String[] args) throws Exception {
System.out.println(createAccessJwtToken());
}
public static String createAccessJwtToken() throws Exception {
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.RS256;
Claims claims = Jwts.claims().setSubject("EXXXXXXXXciOSbWCwG");
claims.put("aud", "XYZ.com");
LocalDateTime currentTime = LocalDateTime.now();
Key signingKey = getPrivateKey2();
String token = Jwts.builder().setClaims(claims).setIssuer("issuer")
.setIssuedAt(Date.from(currentTime.atZone(ZoneId.systemDefault()).toInstant()))
.signWith(SignatureAlgorithm.RS256, signingKey).compact();
return token;
}
private static PrivateKey getPrivateKey2() throws NoSuchAlgorithmException, InvalidKeySpecException {
String rsaPrivateKey = "-----BEGIN PRIVATE KEY-----" +
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJPwCTr8LDSi/7" +
"f0PXtiGZHcT/7B2AAIlATC178lp1mI42Exmw2X/yOiNU6mkiYQxxkv1vr8blViga" +
"mfhwCjahzI9ix0PzyEjVxfFWYlnfoorNGOwWgAqD3kzgnnUVPQXFmYRjtVD43sM4" +
"54h9Q1nFfPnVe9vgyckKI/p2nVUyZZlMo36/PRZdAV15vVvuvBJLW3gW3Xb2OuLy" +
"sF7/NEQe2zi5A87j4pbeRpBmGWzmloF3dNjwtCZAiSmX01nLe0bZYJIHgDgmPDKt" +
"qond8Pe1+zEDDf6fyq9mfT/naSOL1mQbLK2VQdGUGWmNgIpTgPEpolv3AdwbOtMx" +
"47GiOBPdAgMBAAECggEAeimjiQNNoEzdmbakkUJ/XLpEhvJm6ffpWT2k8rOok/Aa" +
"i9rGYqN1Vq5SGk79qR/udNc8v1qdy0Okrpk+xYx9o3RQqi66Ijc3d4VkPgMP+YBq" +
"75usXPA28du1ITkva8gSQ+QwCHLdh2V6boWmRhvnV8nIwv4f+HGld2FlvjE9sYwF" +
"Zwuo51G5TBkMnLaklHzMB18sTrcC4EmFvFfEsH6lzY3XaZXbMiwV802VbTasiXGi" +
"+HDMfUrxza1AVUz4zqlZhWvJL2c9RinLnSsS1eZ/FGbRrjZbfyE/IMFiMapP9LGi" +
"Cw1Gdt9NAwWtx78lgOrrW1+YYLVJEUlXZmPcPBkCZQKBgQDrP9tl10I8wlp6XyRY" +
"1Ge2xqAaSuHSwIMdSw9eRyO9K/CCV7hmzNOUvVe7U3Q5knxD5aoIul2Behn6BzDA" +
"hovtQALmFn0lmwsb7IKa/zM1o3BM5qrSwCTXSiBfKyi207jCK35wJPAJeemCl1JQ" +
"NY0Fug31/+SPLcGyO0HIcxaZrwKBgQDa/1HEHQ6yn2Eb3H/KtNrh5CQYu004LBaz" +
"ISsR7JwfyHscrE34Fx1eyEuJDVehGC30U61zh5h/dibr9M4wJqUTvJuhJh3X/w7r" +
"w1vWSE9rOJsOFenjWVv+2VO6TkaayWPDC79mCR/UBIXULOdMwi6NhDd8eqVraZzg" +
"b5TTHntqMwKBgB6KP7VM6LBymsRgLZvKl1xHFOnU5tQxYdQftnMK0Tzxw1tof+v4" +
"k08v9X/AKcp/ldpKqnRPnWv9qfmnjVCxJuE5+iZcrQqAwkRxw9LTZpaEDUQufea2" +
"QxIf8WvpcnOpsMakVtnAMdlJFmN5uZnoGdKwgLd67PUZf5ff0X5wUnLJAoGBAM60" +
"Itc6nf7XFG+ZxjzsS5TfI3r8fzw/0QUuj1qRvCL7tcgwkj9SgfROlY08vLNfATEW" +
"MidTmwrj2ITqQhuMvk9MvJB0S8LuCYValbpB8kQ/34qCAIsIcx6uvqqg6196KuGU" +
"mwmSHyqdQjwsTf1TY2FLpJunn68stlfYud4zbUWlAoGBAMCxCk2QabirfKSpKeXY" +
"On52j23o/8g2OfDPtd1cS30mTtDUStv3Sqr5Tegz+/7IwugORQujae4b20qgBSds" +
"NP9gb8RGmxLryZsEfwV1qppx0d1gEcyYcySYBhz+9qKyByeD8lotbZ0WGMu/UAg/" +
"ftaiqVv/CKA/h256T/5uThS3" +
"-----END PRIVATE KEY-----";
rsaPrivateKey = rsaPrivateKey.replace("-----BEGIN PRIVATE KEY-----", "");
rsaPrivateKey = rsaPrivateKey.replace("-----END PRIVATE KEY-----", "");
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(rsaPrivateKey));
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privKey = kf.generatePrivate(keySpec);
return privKey;
}
}
How to import a certificate. Use Key Store Explorer to open the cert and export keypair in PEM format This will save a file cert.pem. Make ...