@Override
public Assertion build(Element element, AssertionBuilderFactory factory) throws IllegalArgumentException {
final SPConstants.SPVersion spVersion = SPConstants.SPVersion.getSPVersion(element.getNamespaceURI());
final SupportingTokenType supportingTokenType = spVersion.getSPConstants().getSupportingTokenType(SPUtils.getElementQName(element));
final Element nestedPolicyElement = SPUtils.getFirstPolicyChildElement(element);
final Policy nestedPolicy = nestedPolicyElement != null ? factory.getPolicyEngine().getPolicy(nestedPolicyElement) : new Policy();
SupportingTokens supportingTokens = new SupportingTokens(
spVersion,
supportingTokenType,