DerivedKeyProcessor is overwritten if more derivedkeys are present in a Soap
Message.
-------------------------------------------------------------------------------------
Key: WSS-112
URL: https://issues.apache.org/jira/browse/WSS-112
Project: WSS4J
Issue Type: Bug
Environment: Rampart latest, Wss4J latest
Reporter: Rasmus Rhein Helwigh
Assignee: Ruchith Udayanga Fernando
org.apache.ws.security.WSSConfig.getProcessor returns a cached Processor
public Processor getProcessor(QName el) throws WSSecurityException {
Processor p = (Processor) processorMap.get(el);
return p;
}
This causes problem if two DerivedKeyProcessors are needed for the same
message, as the second processor will overwrite the first.
A fix could be to Create a new instance each time.
Check out this hack:
public Processor getProcessor(QName el) throws WSSecurityException {
Processor p = (Processor) processorMap.get(el);
try {
return (Processor)
Loader.loadClass(p.getClass().getName()).newInstance();
} catch (InstantiationException e) {
throw new WSSecurityException("Unable to get processor",e);
} catch (IllegalAccessException e) {
throw new WSSecurityException("Unable to get processor",e);
} catch (ClassNotFoundException e) {
throw new WSSecurityException("Unable to get processor",e);
}
}
I can try and make a better fix if requested. WCF <-> Wss4j interop will work a
lot better with this fix..
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]