[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml: saml1/profile/impl/AddNameIdenti...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Jan 28 16:35:29 EST 2014
Author: scantor
Date: Tue Jan 28 16:35:29 2014
New Revision: 3582
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3582&view=rev
Log:
IDP-362: legacy generator won't be mappable by Format, so support a fallback in actions
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java?rev=3582&r1=3581&r2=3582&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java Tue Jan 28 16:35:29 2014
@@ -92,6 +92,9 @@
/** Map of formats to generators. */
@Nonnull @NonnullElements private Map<String, List<SAML1NameIdentifierGenerator>> nameIdGeneratorMap;
+ /** Fallback generator, generally for legacy support. */
+ @Nullable private SAML1NameIdentifierGenerator defaultNameIdGenerator;
+
/** Formats to try. */
@Nonnull @NonnullElements private List<String> formats;
@@ -159,7 +162,23 @@
*/
public synchronized void setNameIdentifierGenerators(
@Nonnull @NullableElements Map<String, List<SAML1NameIdentifierGenerator>> generators) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
nameIdGeneratorMap = Constraint.isNotNull(generators, "NameIdentifierGenerator map cannot be null");
+ }
+
+ /**
+ * Set the NameID generator to try if no generator(s) are mapped to a desired format.
+ *
+ * <p>This is generally used for legacy support of the V2 attribute encoder approach,
+ * which is format neutral and can't be mapped explicitly.</p>
+ *
+ * @param generator a fallback default generator, if any
+ */
+ public synchronized void setDefaultNameIDGenerator(@Nullable final SAML1NameIdentifierGenerator generator) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+ defaultNameIdGenerator = generator;
}
/** {@inheritDoc} */
@@ -233,9 +252,15 @@
// See if we can generate one.
for (final String format : formats) {
log.debug("{} Trying to generate NameIdentifier with Format {}", getLogPrefix(), format);
- final List<SAML1NameIdentifierGenerator> generators = nameIdGeneratorMap.get(format);
- if (generators == null) {
- continue;
+ List<SAML1NameIdentifierGenerator> generators = nameIdGeneratorMap.get(format);
+ if (generators == null || generators.isEmpty()) {
+ if (defaultNameIdGenerator != null) {
+ log.debug("{} No generators installed for Format {}, trying default/fallback method",
+ getLogPrefix(), format);
+ generators = Collections.singletonList(defaultNameIdGenerator);
+ } else {
+ continue;
+ }
}
for (final SAML1NameIdentifierGenerator generator : generators) {
if (generator != null && generator.apply(profileRequestContext)) {
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java?rev=3582&r1=3581&r2=3582&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java Tue Jan 28 16:35:29 2014
@@ -89,6 +89,9 @@
/** Map of formats to generators. */
@Nonnull @NonnullElements private Map<String, List<SAML2NameIDGenerator>> nameIdGeneratorMap;
+
+ /** Fallback generator, generally for legacy support. */
+ @Nullable private SAML2NameIDGenerator defaultNameIdGenerator;
/** Formats to try. */
@Nonnull @NonnullElements private List<String> formats;
@@ -157,7 +160,23 @@
*/
public synchronized void setNameIDGenerators(
@Nonnull @NullableElements Map<String, List<SAML2NameIDGenerator>> generators) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
nameIdGeneratorMap = Constraint.isNotNull(generators, "NameIDGenerator map cannot be null");
+ }
+
+ /**
[... 34 lines stripped ...]
More information about the commits
mailing list