1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.attributeDefinition;
18
19 import java.util.Collection;
20
21 import org.opensaml.Configuration;
22 import org.opensaml.common.SAMLObjectBuilder;
23 import org.opensaml.saml1.core.NameIdentifier;
24
25 import edu.internet2.middleware.shibboleth.common.attribute.BaseAttribute;
26 import edu.internet2.middleware.shibboleth.common.attribute.provider.BasicAttribute;
27 import edu.internet2.middleware.shibboleth.common.attribute.resolver.AttributeResolutionException;
28 import edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.ShibbolethResolutionContext;
29
30
31
32
33
34
35
36
37
38 public class SAML1NameIdentifierAttributeDefinition extends BaseAttributeDefinition {
39
40
41 private final SAMLObjectBuilder<NameIdentifier> nameIdBuilder;
42
43
44 private String nameIdFormat;
45
46
47 private String nameIdQualifier;
48
49
50 public SAML1NameIdentifierAttributeDefinition() {
51 super();
52 nameIdBuilder = (SAMLObjectBuilder<NameIdentifier>) Configuration.getBuilderFactory().getBuilder(
53 NameIdentifier.DEFAULT_ELEMENT_NAME);
54 }
55
56
57
58
59
60
61 public String getNameIdFormat() {
62 return nameIdFormat;
63 }
64
65
66
67
68
69
70 public void setNameIdFormat(String format) {
71 nameIdFormat = format;
72 }
73
74
75
76
77
78
79 public String getNameIdQualifier() {
80 return nameIdQualifier;
81 }
82
83
84
85
86
87
88 public void setNameIdQualifier(String qualifier) {
89 nameIdQualifier = qualifier;
90 }
91
92
93 protected BaseAttribute<?> doResolve(ShibbolethResolutionContext resolutionContext)
94 throws AttributeResolutionException {
95 BasicAttribute<NameIdentifier> attribute = new BasicAttribute<NameIdentifier>();
96 attribute.setId(getId());
97
98 Collection<?> values = getValuesFromAllDependencies(resolutionContext);
99 if (values != null && !values.isEmpty()) {
100 for (Object value : values) {
101 attribute.getValues().add(buildNameId(value.toString(), resolutionContext));
102 }
103 }
104
105 return attribute;
106 }
107
108
109
110
111
112
113
114
115
116
117
118 protected NameIdentifier buildNameId(String nameIdValue, ShibbolethResolutionContext resolutionContext) {
119 NameIdentifier nameId = nameIdBuilder.buildObject();
120 nameId.setNameIdentifier(nameIdValue);
121
122 if (nameIdFormat != null) {
123 nameId.setFormat(nameIdFormat);
124 }
125
126 if (nameIdQualifier != null) {
127 nameId.setNameQualifier(nameIdQualifier);
128 } else {
129 nameId.setNameQualifier(resolutionContext.getAttributeRequestContext().getLocalEntityId());
130 }
131
132 return nameId;
133 }
134
135
136 public void validate() throws AttributeResolutionException {
137
138 }
139 }