AW: [WSS4J] Suggested patch to promote more flexible sign/encrypt usage cases
Dittmann Werner <[email protected]> Thu, 5 Feb 2004 08:18:54 +0100
| Newsgroups | gmane.text.xml.wss4j |
|---|---|
| Message-ID | <79D5F4B2D775204D9C7852EE41C547730141A597@mchh2a1e.mchh.siemens.de> |
All,
better coding:
Element body =3D (Element) WSSecurityUtil.findElement(envelope, =
elemName, nmSpace);
if (body !=3D null) {
transforms =3D new Transforms(doc);
=
transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
sig.addDocument("#" + setWsuId(body), transforms)
} else if (takeItSerious =3D=3D verySerious) {
throw new WSSecurityException(
WSSecurityException.FAILURE,
"noEncElement",
new Object[] { nmSpace, elemName });
}
Avoids NPE.
Regards,
Werner
> -----Urspr=FCngliche Nachricht-----
> Von: wss4j-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org=20
> [mailto:wss4j-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] Im Auftrag=20
> von Dittmann Werner
> Gesendet: Donnerstag, 5. Februar 2004 08:13
> An: 'Anderson Jonathan'; WSS4J
> Betreff: AW: [WSS4J] Suggested patch to promote more flexible=20
> sign/encrypt usage cases
>=20
>=20
> Jon,
>=20
> there may be one thing to check: the code sets up
> the security header before it performs any signature
> operations. Thus this could lead to an "empty"
> security header in terms of ds:Reference. I'm not
> sure how the verfication engine deals with that.=20
> Could be a good idea to always specify "Token" so=20
> that at least the security token is signed and the
> Signature structure is not empty. Also the
> receiving Axis handler performs a check if all
> expected security operations were done. It
> checks if the number of security ops, the type
> and ordering of security ops match the=20
> configured operations (in *.wsdd file)
> Thus an empty Signature could lead to problems.=20
>=20
> The idea behind to throw an exception: security=20
> is a quite sensitive thing. Thus, if somebody specifies
> an element to sign and this element is not in the
> request message - it should fail. An idea would
> be to introduce a parameter that defines=20
> "how serious" to take it (yet another config option,=20
> we will get "the most config data available" award for
> Axis handlers sometimes :-) ).
>=20
> Could be something like that:
>=20
> Element body =3D (Element) WSSecurityUtil.findElement(envelope,=20
> elemName, nmSpace);
> if (body =3D=3D null && takeItSerious =3D=3D verySerious) {
> throw new WSSecurityException(
> WSSecurityException.FAILURE,
> "noEncElement",
> new Object[] { nmSpace, elemName });
> }
> else {
> transforms =3D new Transforms(doc);
> =20
> =
transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
> sig.addDocument("#" + setWsuId(body), transforms);
> }
>=20
> Have this parameter configurable via *.wsdd file and it is up
> to the deployer.
>=20
> A similar thing could be done for Encryption. However, here
> some more checks may be necessary. Or at least, similar to the
> above, define that at least the body is always encrypted. Thus
> we avoid the "empty" encryption structure. Other elements could
> be optional because encryption works for "1 thru n" elements.
>=20
> Regards,
> Werner
>=20
> > -----Urspr=FCngliche Nachricht-----
> > Von: wss4j-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org=20
> > [mailto:wss4j-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] Im Auftrag=20
> > von Anderson Jonathan
> > Gesendet: Donnerstag, 5. Februar 2004 00:03
> > An: WSS4J
> > Betreff: [WSS4J] Suggested patch to promote more flexible=20
> > sign/encrypt usage cases
> >=20
> >=20
> > Hey guys,
> > WSSignEnvelope, line 257. Looks as if it attempts to=20
> > find the element
> > specified to either be signed or encrypted, and throws an=20
> > Exception if it
> > cannot find it. We've got a portal app that consumes a=20
> variety of web
> > services, and the header information is not uniform across=20
> > all of the SOAP
> > messages sent. Looking for a manner in which I could use=20
> > WSS4J in a "if
> > these elements are present, sign them" scenario I made the=20
> > following *hack*:
> >=20
> > if (body =3D=3D null) {
> > /*
> > throw new WSSecurityException(
> > WSSecurityException.FAILURE,
> > "noEncElement",
> > new Object[] { nmSpace, elemName });
> > */
> > }
> > else
> > {
> > transforms =3D new Transforms(doc);
> > =20
> >=20
> =
transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
> > sig.addDocument("#" + setWsuId(body), transforms);
> > }
> >=20
> > It works just great for signing, though I admit I have not a)=20
> > verified the
> > signatures yet (still testing) or b) tried this with=20
> > encryption. I now
> > specify multiple elements to sign in the WSDoAllSender=20
> signatureParts
> > parameter, and the handler will sign the elements if they=20
> are present.
> >=20
> > Thoughts anyone? Am I digging myself into a hole here, or is=20
> > this a valid
> > use case for WSS4J? Any ideas on what else would need to be=20
> > modified to
> > fully support this approach?
> >=20
> > Any and all feedback would be appreciated.
> >=20
> > Thanks,
> > -Jon
> >=20
> >=20
> >=20
> >=20
> > -------------------------------------------------------
> > The SF.Net email is sponsored by EclipseCon 2004
> > Premiere Conference on Open Tools Development and Integration
> > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> > http://www.eclipsecon.org/osdn
> > _______________________________________________
> > wss4j-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wss4j-devel
> >=20
>=20
>=20
> -------------------------------------------------------
> The SF.Net email is sponsored by EclipseCon 2004
> Premiere Conference on Open Tools Development and Integration
> See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> http://www.eclipsecon.org/osdn
> _______________________________________________
> wss4j-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wss4j-devel
>=20
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn