Суть в том, чтобы определить префиксы для пространств имен и использовать их для усиления каждого тега - вы смешиваете 3 пространства имен, и это просто не вылетает, пытаясь взломать значения по умолчанию.Также хорошо использовать именно те префиксы, которые используются в стандарте do c - на тот случай, если другая сторона получит немного небрежно.
Последнее, но не менее важное, гораздо лучше использовать defaultТипы для полей, когда вы можете - так что для пароля вы должны перечислить тип, для Nonce это уже Base64.
Убедитесь, что вы проверяете, что сгенерированный токен является правильным, прежде чем отправлять его через XML и не 'Не стоит забывать, что содержимое wsse: Password - Base64 (SHA-1 (nonce + made + password)), а дата-время в wsu: Created может легко вас испортить.Поэтому, как только вы исправите префиксы и пространства имен и убедитесь, что ваш SHA-1 работает нормально без XML (только представьте, что вы проверяете запрос и выполняете вычисления SHA-1 на стороне сервера), вы также можете сделать истинное без создания и даже без Nonce.Oh и Nonce могут иметь разные кодировки, поэтому, если вы действительно хотите использовать другую кодировку, вам придется заглянуть в пространство имен wsu.
<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu= "...">
<S11:Header>
...
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>NNK</wsse:Username>
<wsse:Password Type="...#PasswordDigest">weYI3nXd8LjMNVksCKFV8t3rgHh3Rw==</wsse:Password>
<wsse:Nonce>WScqanjCEAC4mQoBE07sAQ==</wsse:Nonce>
<wsu:Created>2003-07-16T01:24:32</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
...
</S11:Header>
...
</S11:Envelope>