[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-spring/src: main/java/net/shibboleth/idp/attribute/r...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Jan 16 04:47:31 EST 2015
Author: rdw
Date: Fri Jan 16 04:47:31 2015
New Revision: 7243
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7243&view=rev
Log:
IDP-571 Strip any aliases from the registry after registration. Spring added these if it finds "name='whatever'" attributes and we do not want these aliases.
Modified:
trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/Regressions.java
Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java?rev=7243&r1=7242&r2=7243&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java (original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java Fri Jan 16 04:47:31 2015
@@ -22,7 +22,9 @@
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.springframework.beans.factory.BeanCreationException;
+import org.springframework.beans.factory.config.BeanDefinitionHolder;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
@@ -34,51 +36,62 @@
/** Local name of name attribute. */
public static final String NAME_ATTRIBUTE_NAME = "name";
-
+
/** Whether the name property is required or not. */
private boolean nameRequired;
-
+
/** Constructor. */
public BaseAttributeEncoderParser() {
nameRequired = false;
}
-
+
/**
* Set whether the name property is required or not.
*
- * @param flag flag to set
+ * @param flag flag to set
*/
public void setNameRequired(final boolean flag) {
nameRequired = flag;
}
-
+
/** {@inheritDoc} */
- @Override
- protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+ @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
final String attributeName = StringSupport.trimOrNull(config.getAttributeNS(null, NAME_ATTRIBUTE_NAME));
if (nameRequired && attributeName == null) {
throw new BeanCreationException("Attribute encoder must contain a name property");
}
-
+
if (config.hasAttributeNS(null, "activationConditionRef")) {
builder.addPropertyReference("activationCondition", config.getAttributeNS(null, "activationConditionRef"));
}
-
+
if (config.hasAttributeNS(null, "encodeType")) {
builder.addPropertyValue("encodeType", config.getAttributeNS(null, "encodeType"));
}
-
+
builder.setInitMethodName("initialize");
builder.setDestroyMethodName("destroy");
builder.addPropertyValue("name", attributeName);
+
+ }
+
+ /** {@inheritDoc}
+ * We do <em>not</em> want Spring to add aliases derived from {@literal #NAME_ATTRIBUTE_NAME} so strip them out
+ * from the registry. */
+ @Override protected void registerBeanDefinition(BeanDefinitionHolder definition, BeanDefinitionRegistry registry) {
+ String[] aliases = definition.getAliases();
+ super.registerBeanDefinition(definition, registry);
+ if (aliases != null && aliases.length != 0) {
+ for (String alias : aliases) {
+ registry.removeAlias(alias);
+ }
+ }
}
/** {@inheritDoc} */
- @Override
- public boolean shouldGenerateId() {
+ @Override public boolean shouldGenerateId() {
return true;
}
-
}
Modified: trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/Regressions.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/Regressions.java?rev=7243&r1=7242&r2=7243&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/Regressions.java (original)
[... 11 lines stripped ...]
More information about the commits
mailing list