Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DefaultBootstrap.bootstrap();
- BasicParserPool ppMgr = new BasicParserPool();
- ppMgr.setNamespaceAware(true);
- //Read file from the filesystem
- File file1=new File("F:/Softwares/Assertion.xml");
- InputStream inCommonSaml=new FileInputStream(file1);
- // Parse file
- Document inCommonSamlDoc = ppMgr.parse(inCommonSaml);
- Element metadataRoot = inCommonSamlDoc.getDocumentElement();
- UnmarshallerFactory unmarshallerFactory=configuration.getUnmarshallerFactory();
- Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(metadataRoot);
- Response inCommonSamlRes = (Response) unmarshaller.unmarshall(metadataRoot);
- //Get certificate
- SignatureValidator signatureValidator = new SignatureValidator(cert);
- Signature signature=inCommonSamlRes.getSignature();
- signatureValidator.validate(signature);
- try {
- BasicX509Credential credential = new BasicX509Credential();
- File file2=new File("F:/Softwares/publicKey.crt");
- InputStream samlCertificate=new FileInputStream(file2);
- CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
- //
- @SuppressWarnings("deprecation")
- java.security.cert.X509Certificate certificate = (java.security.cert.X509Certificate) certificateFactory.generateCertificate(samlCertificate);
- //
- X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec((certificate).getPublicKey().getEncoded());
- KeyFactory keyFactory = KeyFactory.getInstance("RSA");
- PublicKey key = keyFactory.generatePublic(publicKeySpec);
- credential.setPublicKey(key);
- Object obj = (credential).getPublicKey();
- if (obj instanceof RSAPublicKey) {
- BigInteger modulus = ((RSAPublicKey) obj).getModulus();
- BigInteger exponent = ((RSAPublicKey) obj).getPublicExponent();
- System.out.println("modulus");
- System.out.println (org.apache.commons.codec.binary.Base64.encodeBase64String(modulus.toByteArray()));
- System.out.println("public exponent:");
- System.out.println (org.apache.commons.codec.binary.Base64.encodeBase64String(exponent.toByteArray()));
- }
- // System.out.println ("public key is: //n//r"+ credential.getPublicKey());
- return credential;
- } catch (Exception e) {
- throw e; //Throws a 'Signature did not validate against the credential's key' exception
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement