All,
the implememtation of this WSE specific stuuf is based
on some
information that is floating around in the internet.
I''ve not checked
if this is adressed in the WSS
1.1spec.
However, pls have a look at the deployment files of the
interop scenario 2a
in the interop
directory. Make sure you look at the client _and_ the
server
deployment because the Usernametoken signature actually
is a "2-step"
action on the client side that generates a
Usernametoken and a Signature.
The server (or receiver) action setting has to
take care about this fact.
WSS4J 1.1 does not support the feature to encrypt the
body with the
key dereived from the Usernametoken. This will
(probably) implemented
with the Policy Language enhanced version if the Policy
Language spec
becomes somewhat more stable (and readable :-)
)
Regards,
Werner
I am a problem similar to Paul. I am
using WSS4J (1.1 9/4/05 release) on the client side to generate a
signature using a Username Token to invoke a .NET service (WSE 2.0 SP3).
The .NET service rejects WSS4J's requests with:
SOAP
Fault:
faultCode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}FailedCheck
faultString:
Microsoft.Web.Services2.Security.SecurityFault: The signature or
decryption was invalid
at
Microsoft.Web.Services2.Security.Security.LoadXml(XmlElement
element)
at
Microsoft.Web.Services2.Security.SecurityInputFilter.ProcessMessage(SoapEnvelope
envelope)
at
Microsoft.Web.Services2.Pipeline.ProcessInputMessage(SoapEnvelope
envelope)
at
Microsoft.Web.Services2.WebServicesExtension.BeforeDeserializeServer(SoapServerMessage
message)
faultActor: http://goldfish.parasoft.com:8000/utsign/UTVerifySign.asmx
This
is the same kind of error that WSE returns when the signature validation
fails due to a digest mismatch. Signed messages from a similar .NET client
succeed, and WSS4J correctly verifies the UT signature it generates. I did
not test WSS4J verifying a signature from a .NET client, but there seems
to be an interop issue here.
I read a few emails on this subject
dated between 5/17/05 and 5/18/05:
Sometime ago we had a similar problem because .NET/WSE
uses a proprietary mechanism to generate a Signature with a
Signature key that is constructed from data in UsernameToken -
we inserted this algo, pls refer to UsernameTokenSignature
(last weekend I updated some inline doc about this topic, pls
chek the CVS mail here in the list). However, no official interop
was done for this, support is weak because of weak documention,
and so on.
Was there anything new since then? Where
are these inline docs that are references here? Did anybody get this
scenario to work with .NET?
Where can I find info on how .NET
exactly performs the UT signing so I look into this
issue?
Thanks,
Rami Jaamour
Software Engineer - Service Oriented Architecture Solutions
Parasoft Corporation email: [EMAIL PROTECTED]
101 E. Huntington Ave. voice: (626) 256-3680 ext. 1217
Monrovia, CA. 91016 fax : (626) 256-6884
"We Make Software Work"
Ruchith Fernando wrote:
Hi Paul,
This scenario includes secure conversation and right now you cannot
use WSS4J to do this.
But wss4j + addressing supports the first two actions:
- The ws-addressing elements must be included in the header
- Authentication with UsernameToken, Password Option=SendHashed
(aka – PasswordDigest).
Thanks,
Ruchith
On 2/1/06, Paul Grassi <[EMAIL PROTECTED]> wrote:
I need to call a .NET service using the following semantics.
- The ws-addressing elements must be included in the header
- Authentication with UsernameToken, Password Option=SendHashed
(aka – PasswordDigest).
- 2 DerivedKeyTokens, from ws-secureconversation, be created, based
off of the UsernameToken (using P_SHA1)
- The message signed with DerivedKeyToken #1 (using HMAC-SHA1)
- The message body encrypted using DerivedKeyToken #2 (using
aes128-cbc)
Does wss4j support this? I know the ws-addressing and ws-secureconversation
implementations in Java are in their infancy. I am hoping Apache has
progressed further than Sun.
Paul
Paul Grassi | Iditarod Systems
Voice: 703.637.8825 Fax: 703.637.8830