0

wss4j を使用して SOAP ヘッダーで X509 に署名すると、例外が発生します。私のコードはここにあります:

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);

    Document document = msg.getSOAPPart().getEnvelope().getOwnerDocument(); 



    Crypto crypto = CryptoFactory.getInstance();   

    WSSecSignature signature = new WSSecSignature();


    WSSecHeader secuHeader = new WSSecHeader("",false);
    secuHeader.insertSecurityHeader(document);

    String user = "16c73ab6-b892-458f-abf5-2f875f74882e";
    String password ="security";

    signature.setUserInfo(user, password);
    signature.setKeyIdentifierType(WSConstants.X509_KEY_IDENTIFIER);
    signature.build(document, crypto, secuHeader);

wss4j でデフォルトの crypto.properties を使用するだけです。ただし、例外が存在します。

Exception in thread "main" java.lang.AssertionError: UNIMPLEMENTED
    at weblogic.xml.domimpl.ElementBase.setIdAttributeNS(ElementBase.java:327)
    at org.jcp.xml.dsig.internal.dom.DOMUtils.setAttributeID(Unknown Source)
    at org.jcp.xml.dsig.internal.dom.DOMKeyInfo.marshal(Unknown Source)
    at org.jcp.xml.dsig.internal.dom.DOMKeyInfo.marshal(Unknown Source)
    at org.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal(Unknown Source)
    at org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(Unknown Source)
    at org.apache.ws.security.message.WSSecSignature.computeSignature(WSSecSignature.java:554)
    at org.apache.ws.security.message.WSSecSignature.computeSignature(WSSecSignature.java:479)
    at org.apache.ws.security.message.WSSecSignature.build(WSSecSignature.java:385)

この例外を解決する方法を知りたいです。ご協力いただきありがとうございます!

4

0 に答える 0