当我尝试生成代码时:
Certificate cert;
InputStream path = new FileInputStream(TRUSTSTORE_LOCATION);
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(path, TRUSTSTORE_PASS.toCharArray());
// jak argument podaje sie certyfikat ktory jest zawarty w pliku trustory.jks
cert = ks.getCertificate("xxxx");
binarySecurityTokenElement.addTextNode(new BASE64Encoder().encode(cert.getEncoded()));
//kpg = KeyPairGenerator.getInstance("DSA");
kpg = KeyPairGenerator.getInstance("RSA");
输出为:
<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
Id="X509-7E20D88DE75F0EAADA137595678499810"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">
MIIDXDCCAkSgAwIBAgIEUFbpiDANBgkqhkiG9w0BAQUFADBwMQswCQYDVQQGEwJQTDEQMA4GA1UE
CBMHVW5rbm93bjENMAsGA1UEBxMETG9kejEVMBMGA1UEChMMQU1HLm5ldCBTLkEuMRUwEwYDVQQL
[...]
行尾有这个“
;”,怎么删除??
最佳答案
Base64Converter base = new Base64Converter();
String encodeCertyficate = base.encode(cert.getEncoded());
encodeCertyficate = encodeCertyficate.replace("\r", "").replace("\n", "");
binarySecurityTokenElement.addTextNode(encodeCertyficate);
关于java - 为 SOAP header 生成证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145723/