throws WSSPolicyException {
RampartPolicyData rpd = new RampartPolicyData();
for (Iterator iter = topLevelAssertions.iterator(); iter.hasNext();) {
Assertion assertion = (Assertion) iter.next();
if (assertion instanceof Binding) {
setWebServiceSecurityPolicyNS(assertion, rpd);
if (assertion instanceof SymmetricBinding) {
processSymmetricPolicyBinding((SymmetricBinding) assertion, rpd);
} else if(assertion instanceof AsymmetricBinding) {
processAsymmetricPolicyBinding((AsymmetricBinding) assertion, rpd);
} else {
processTransportBinding((TransportBinding) assertion, rpd);
}
/*
* Don't change the order of Wss11 / Wss10 instance checks
* because Wss11 extends Wss10 - thus first check Wss11.
*/
} else if (assertion instanceof Wss11) {
processWSS11((Wss11) assertion, rpd);
} else if (assertion instanceof Wss10) {
processWSS10((Wss10) assertion, rpd);
} else if (assertion instanceof SignedEncryptedElements) {
processSignedEncryptedElements((SignedEncryptedElements) assertion,
rpd);
} else if (assertion instanceof SignedEncryptedParts) {
processSignedEncryptedParts((SignedEncryptedParts) assertion, rpd);
} else if ( assertion instanceof RequiredElements) {
processRequiredElements((RequiredElements)assertion, rpd);
} else if (assertion instanceof ContentEncryptedElements) {
processContentEncryptedElements((ContentEncryptedElements) assertion, rpd);
}else if (assertion instanceof SupportingToken) {
//Set policy version. Cos a supporting token can appear along without a binding
setWebServiceSecurityPolicyNS(assertion, rpd);
processSupportingTokens((SupportingToken) assertion, rpd);
} else if (assertion instanceof Trust10) {
processTrust10((Trust10)assertion, rpd);
} else if (assertion instanceof RampartConfig) {
processRampartConfig((RampartConfig)assertion, rpd);
} else if (assertion instanceof MTOMAssertion){
processMTOMSerialization((MTOMAssertion)assertion, rpd);
} else {
if (log.isDebugEnabled()) {
log.debug("Unknown top level PED found: "
+ assertion.getClass().getName());
}
}
}
return rpd;