【发布时间】:2015-10-02 21:07:50
【问题描述】:
我对 SAML 完全陌生,我只是构建了 saml,但根据要求,我还需要添加 KeyInfo 和 x509 证书节点,包括客户端的公共证书,我使用以下代码生成签名元素,但不知道如何添加 签名中的 KeyInfo 和 X509Data。需要这方面的帮助吗?
BasicX509Credential signingCredential = new BasicX509Credential();
//Namespace nameSpaceSAML = new Namespace("http://www.w3.org/2000/09/xmldsig#","ds");
KeyStore keyStore = getKeyStore( signingKeyStorePath,signingKeyStorePassword);
PrivateKey privateKey = getPrivateKey(keyStore,signingKeyalias,signingKeyStorePassword );
signingCredential.setPrivateKey(privateKey);
signature = (Signature) Configuration.getBuilderFactory().getBuilder(Signature.DEFAULT_ELEMENT_NAME).buildObject(Signature.DEFAULT_ELEMENT_NAME);
signature.setSigningCredential(signingCredential);
signature.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA1);
signature.setCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);
【问题讨论】: