in policy/src/main/java/org/apache/wss4j/policy/model/AsymmetricBinding.java [120:212]
protected void parseNestedPolicy(Policy nestedPolicy, AsymmetricBinding asymmetricBinding) {
Iterator<List<Assertion>> alternatives = nestedPolicy.getAlternatives();
//we just process the first alternative
//this means that if we have a compact policy only the first alternative is visible
//in contrary to a normalized policy where just one alternative exists
if (alternatives.hasNext()) {
List<Assertion> assertions = alternatives.next();
for (Assertion assertion : assertions) {
String assertionName = assertion.getName().getLocalPart();
String assertionNamespace = assertion.getName().getNamespaceURI();
QName initiatorToken = getVersion().getSPConstants().getInitiatorToken();
if (initiatorToken.getLocalPart().equals(assertionName)
&& initiatorToken.getNamespaceURI().equals(assertionNamespace)) {
if (asymmetricBinding.getInitiatorToken() != null
|| asymmetricBinding.getInitiatorSignatureToken() != null
|| asymmetricBinding.getInitiatorEncryptionToken() != null) {
throw new IllegalArgumentException(SPConstants.ERR_INVALID_POLICY);
}
final InitiatorToken initiatorToken1 = (InitiatorToken) assertion;
asymmetricBinding.setInitiatorToken(initiatorToken1);
initiatorToken1.setParentAssertion(asymmetricBinding);
continue;
}
QName initiatorSigToken = getVersion().getSPConstants().getInitiatorSignatureToken();
if (initiatorSigToken.getLocalPart().equals(assertionName)
&& initiatorSigToken.getNamespaceURI().equals(assertionNamespace)) {
if (asymmetricBinding.getInitiatorToken() != null
|| asymmetricBinding.getInitiatorSignatureToken() != null) {
throw new IllegalArgumentException(SPConstants.ERR_INVALID_POLICY);
}
final InitiatorSignatureToken initiatorSignatureToken1 = (InitiatorSignatureToken) assertion;
asymmetricBinding.setInitiatorSignatureToken(initiatorSignatureToken1);
initiatorSignatureToken1.setParentAssertion(asymmetricBinding);
continue;
}
QName initiatorEncToken = getVersion().getSPConstants().getInitiatorEncryptionToken();
if (initiatorEncToken.getLocalPart().equals(assertionName)
&& initiatorEncToken.getNamespaceURI().equals(assertionNamespace)) {
if (asymmetricBinding.getInitiatorToken() != null
|| asymmetricBinding.getInitiatorEncryptionToken() != null) {
throw new IllegalArgumentException(SPConstants.ERR_INVALID_POLICY);
}
final InitiatorEncryptionToken initiatorEncryptionToken1 = (InitiatorEncryptionToken) assertion;
asymmetricBinding.setInitiatorEncryptionToken(initiatorEncryptionToken1);
initiatorEncryptionToken1.setParentAssertion(asymmetricBinding);
continue;
}
QName recipientToken = getVersion().getSPConstants().getRecipientToken();
if (recipientToken.getLocalPart().equals(assertionName)
&& recipientToken.getNamespaceURI().equals(assertionNamespace)) {
if (asymmetricBinding.getRecipientToken() != null
|| asymmetricBinding.getRecipientSignatureToken() != null
|| asymmetricBinding.getRecipientEncryptionToken() != null) {
throw new IllegalArgumentException(SPConstants.ERR_INVALID_POLICY);
}
final RecipientToken recipientToken1 = (RecipientToken) assertion;
asymmetricBinding.setRecipientToken(recipientToken1);
recipientToken1.setParentAssertion(asymmetricBinding);
continue;
}
QName recipientSigToken = getVersion().getSPConstants().getRecipientSignatureToken();
if (recipientSigToken.getLocalPart().equals(assertionName)
&& recipientSigToken.getNamespaceURI().equals(assertionNamespace)) {
if (asymmetricBinding.getRecipientToken() != null
|| asymmetricBinding.getRecipientSignatureToken() != null) {
throw new IllegalArgumentException(SPConstants.ERR_INVALID_POLICY);
}
final RecipientSignatureToken recipientSignatureToken1 = (RecipientSignatureToken) assertion;
asymmetricBinding.setRecipientSignatureToken(recipientSignatureToken1);
recipientSignatureToken1.setParentAssertion(asymmetricBinding);
continue;
}
QName recipientEncToken = getVersion().getSPConstants().getRecipientEncryptionToken();
if (recipientEncToken.getLocalPart().equals(assertionName)
&& recipientEncToken.getNamespaceURI().equals(assertionNamespace)) {
if (asymmetricBinding.getRecipientToken() != null
|| asymmetricBinding.getRecipientEncryptionToken() != null) {
throw new IllegalArgumentException(SPConstants.ERR_INVALID_POLICY);
}
final RecipientEncryptionToken recipientEncryptionToken1 = (RecipientEncryptionToken) assertion;
asymmetricBinding.setRecipientEncryptionToken(recipientEncryptionToken1);
recipientEncryptionToken1.setParentAssertion(asymmetricBinding);
continue;
}
}
}
}