Я пытаюсь сделать вызов защищенного web-сервиса с защитой ws-безопасности с сервера, который, к сожалению, не поддерживает это изначально. Подход, который я принял, заключается в реализации .jsp, который действует как обратный прокси-сервер для фактического URL конечной точки, в процессе добавления элемента с элементами ws-security.Реализация пароля для ws-security UsernameToken в Java
Это, кажется, работает достаточно хорошо, и я уверен, что правильно построил XML с правильными пространствами имен и т. Д. Я проверил это, сравнив XML с XML, созданный SOAP-UI.
Проблема заключается в реализации генератора дайджеста паролей. Я не получаю тот же результат, что и SOAP-UI, используя те же самые входы для NOnce, xsd: dateTime и пароль, и следующий код.
StringBuffer passwordDigestStr_ = new StringBuffer();
// First append the NOnce from the SOAP header
passwordDigestStr_.append(Base64.decode("PzlbwtWRpmFWjG0JRIRn7A=="));
// Then append the xsd:dateTime in UTC timezone
passwordDigestStr_.append("2012-06-09T18:41:03.640Z");
// Finally append the password/secret
passwordDigestStr_.append("password");
System.out.println("Generated password digest: " + new String(com.bea.xbean.util.Base64.encode(org.apache.commons.codec.digest.DigestUtils.sha(passwordDigestStr_.toString())), "UTF-8"));
Я считаю, что проблема с реализацией хеширование первых двух элементов, как объясняется http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf
Следует отметить, что одноразовое значение хешируется с использованием последовательности октетов его декодированного значения в то время как временная метка хешируется используя октетную последовательность его кодировки UTF8, как указано в содержимом элемента.
Если бы кто-нибудь мог помочь мне решить эту проблему, это было бы здорово, потому что она начинает сводить меня с ума! Было бы идеально, если бы вы могли предоставить исходный код.
Можете ли вы разместить образцы ввода и вывода из SOAP-UI? Таким образом, мы можем попытаться помочь только с Java и вашим кодом, а не с SOAP-UI. –