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.neethi.builders.AssertionBuilder;
25 import org.apache.wss4j.policy.SP11Constants;
26 import org.apache.wss4j.policy.SPConstants;
27 import org.apache.wss4j.policy.SPUtils;
28 import org.apache.wss4j.policy.model.Trust10;
29 import org.w3c.dom.Element;
30
31 import javax.xml.namespace.QName;
32
33 public class Trust10Builder implements AssertionBuilder<Element> {
34
35 @Override
36 public Assertion build(Element element, AssertionBuilderFactory factory) throws IllegalArgumentException {
37
38 final SPConstants.SPVersion spVersion = SPConstants.SPVersion.getSPVersion(element.getNamespaceURI());
39 final Element nestedPolicyElement = SPUtils.getFirstPolicyChildElement(element);
40 if (nestedPolicyElement == null) {
41 throw new IllegalArgumentException("sp:Trust10 must have an inner wsp:Policy element");
42 }
43 final Policy nestedPolicy = factory.getPolicyEngine().getPolicy(nestedPolicyElement);
44 Trust10 trust10 = new Trust10(
45 spVersion,
46 nestedPolicy
47 );
48 trust10.setOptional(SPUtils.isOptional(element));
49 trust10.setIgnorable(SPUtils.isIgnorable(element));
50 return trust10;
51 }
52
53 @Override
54 public QName[] getKnownElements() {
55 return new QName[]{SP11Constants.TRUST_10};
56 }
57 }