我需要将CDATA添加到xml字符串以便使用证书进行签名.
字符串看起来像:
<SignedContent>someparametres</SignedContent>
Run Code Online (Sandbox Code Playgroud)
结果必须如下:
<![CDATA[<SignedContent>someparametres</SignedContent>]]>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?请帮忙
PS Xml字符串只有一行(删除所有选项卡,所有空格,BOM)
我有春季网络服务。我需要签署服务器(我的网络服务)为肥皂请求提供的肥皂响应。xwss 和 wss4j 拦截器不适合于此,因为我需要这种格式:
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34310-gost34311"/>
<ds:Reference URI="#b0525e8a-dbcb-45da-abfd-d1bdecf6ccbb">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34311"/>
<ds:DigestValue>valval=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
valuevalue==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
valuevaluevalue=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
Run Code Online (Sandbox Code Playgroud)
我需要将其添加到我的响应中的肥皂头块中。为此,我必须获取整个soap响应的xml,包括soap env等。
如何获取该 xml,通过添加soap header 来修改它,最后将其作为响应发送?
请帮助我
我需要从像这样的库的公共类中调用私有构造函数:
public class XMLRoutine {
private static XMLRoutine _instance;
private XMLRoutine() {
}
public String signXml(String xml, PrivateKey privateKey, Certificate cert, String encoding) throws ParserConfigurationException, SAXException, IOException, PrivilegedActionException {
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样称呼时:
import kz.softkey.iola.applet.XMLRoutine;
...
XMLRoutine xmlr = new XMLRoutine();
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:XMLRoutine() has private access in XMLRoutine所以我不能调用方法signXml.
我怎么解决这个问题?