diff --git a/src/main/java/cz/trask/adfs/service/AdfsTokenService.java b/src/main/java/cz/trask/adfs/service/AdfsTokenService.java index 6d2f535..96b8288 100644 --- a/src/main/java/cz/trask/adfs/service/AdfsTokenService.java +++ b/src/main/java/cz/trask/adfs/service/AdfsTokenService.java @@ -212,24 +212,26 @@ public class AdfsTokenService { } private X509Certificate getCertificate(String certificatePem) throws Exception { - String normalized = certificatePem.replace("-----BEGIN CERTIFICATE-----", "") - .replace("-----END CERTIFICATE-----", "") - .replaceAll("\\s", ""); + String normalized = removePemHeaders(certificatePem); byte[] certBytes = Base64.getDecoder().decode(normalized); CertificateFactory factory = CertificateFactory.getInstance("X.509"); return (X509Certificate) factory.generateCertificate(new ByteArrayInputStream(certBytes)); } private PrivateKey getPrivateKey(String privateKeyPem) throws Exception { - String normalized = privateKeyPem.replaceAll("-----BEGIN (.*) PRIVATE KEY-----", "") - .replaceAll("-----END (.*) PRIVATE KEY-----", "") - .replaceAll("\\s", ""); + String normalized = removePemHeaders(privateKeyPem); byte[] keyBytes = Base64.getDecoder().decode(normalized); PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); return keyFactory.generatePrivate(spec); } + private String removePemHeaders(String pem) { + return pem.replaceAll("-----BEGIN (.*)-----", "") + .replaceAll("-----END (.*)-----", "") + .replaceAll("\\s+", ""); + } + private String readFully(InputStream inputStream) throws Exception { if (inputStream == null) { return "";