1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.wss4j.policy.builders;
20
21 import org.apache.neethi.Assertion;
22 import org.apache.neethi.AssertionBuilderFactory;
23 import org.apache.neethi.Policy;
24 import org.apache.wss4j.policy.SP13Constants;
25 import org.apache.wss4j.policy.SPConstants;
26 import org.apache.wss4j.policy.SPUtils;
27 import org.apache.wss4j.policy.model.Trust13;
28 import org.w3c.dom.Element;
29
30 import javax.xml.namespace.QName;
31
32 public class Trust13Builder extends Trust10Builder {
33
34 @Override
35 public Assertion build(Element element, AssertionBuilderFactory factory) throws IllegalArgumentException {
36
37 final SPConstants.SPVersion spVersion = SPConstants.SPVersion.getSPVersion(element.getNamespaceURI());
38 final Element nestedPolicyElement = SPUtils.getFirstPolicyChildElement(element);
39 if (nestedPolicyElement == null) {
40 throw new IllegalArgumentException("sp:Trust13 must have an inner wsp:Policy element");
41 }
42 final Policy nestedPolicy = factory.getPolicyEngine().getPolicy(nestedPolicyElement);
43 Trust13 trust13 = new Trust13(
44 spVersion,
45 nestedPolicy
46 );
47 trust13.setOptional(SPUtils.isOptional(element));
48 trust13.setIgnorable(SPUtils.isIgnorable(element));
49 return trust13;
50 }
51
52 @Override
53 public QName[] getKnownElements() {
54 return new QName[]{SP13Constants.TRUST_13};
55 }
56 }