java - 为 SOAP header 生成证书

标签 java soap-client

当我尝试生成代码时:

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&#13;
                                CBMHVW5rbm93bjENMAsGA1UEBxMETG9kejEVMBMGA1UEChMMQU1HLm5ldCBTLkEuMRUwEwYDVQQL&#13;
                        [...]

行尾有这个“ ;”,怎么删除??

最佳答案

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/

相关文章:

PHP SOAP 客户端教程/推荐?

web-services - 使用 Web 服务将 Scorm 文件上传到 Moodle 中的类(class)

php - SOAP 请求中的 ns1 和 tem 不匹配会影响请求吗?

java - 在 Hibernate 中检索特定字段的值

java - 了解 Java 热点 JIT 生成的用于 float 测试的代码

java - LFTP - Java 原生库

java - 将 XML 声明添加到 soap 消息

Java 类不会导入到 .jsp 文件

java - 使用 hibernate 获取两个时间戳差异的平均值

php - 未从 SOAP 响应对象调用构造函数