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