@org.junit.Test
public void testWSHandlerSignatureCanonicalization() throws Exception {
final WSSConfig cfg = WSSConfig.getNewInstance();
final int action = WSConstants.SIGN;
final RequestData reqData = new RequestData();
reqData.setWssConfig(cfg);
reqData.setUsername("16c73ab6-b892-458f-abf5-2f875f74882e");
java.util.Map<String, Object> config = new java.util.TreeMap<String, Object>();
config.put(WSHandlerConstants.SIG_PROP_FILE, "crypto.properties");
config.put(WSHandlerConstants.SIG_C14N_ALGO, WSConstants.C14N_WITH_COMMENTS);
config.put("password", "security");
reqData.setMsgContext(config);
final java.util.List<Integer> actions = new java.util.ArrayList<Integer>();
actions.add(WSConstants.SIGN);
final Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
CustomHandler handler = new CustomHandler();
handler.send(
action,
doc,
reqData,
actions,
true
);
String outputString =
org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);
if (LOG.isDebugEnabled()) {
LOG.debug("Signed message:");
LOG.debug(outputString);
}
RequestData data = new RequestData();
WSSConfig newConfig = WSSConfig.getNewInstance();
newConfig.setWsiBSPCompliant(false);
data.setWssConfig(newConfig);
data.setSigCrypto(crypto);
WSSecurityEngine newSecEngine = new WSSecurityEngine();
Element elem = WSSecurityUtil.getSecurityHeader(doc, "");
List<WSSecurityEngineResult> results =
newSecEngine.processSecurityHeader(elem, data);