Is IDP tied to specific spring version?
avalanche333
Matthew.R.Zmuda at td.com
Tue Jul 30 08:33:20 EDT 2013
For the record in-case there is plans to upgrade shibboleth to Spring 3.0.x
the issue is
thatedu.internet2.middleware.shibboleth.common.config.attribute.encoding.SAML2StringAttributeEncoderBeanDefinitionParser
forces you to set an attribute "name". This name value ultimately gets
registered in the org.springframework.core.SimpleAliasRegistry - aliasMap.
However its the base class that actually uses the name so I suppose this
would impact anything that extends
edu.internet2.middleware.shibboleth.common.config.attribute.encoding.BaseAttributeEncoderBeanDefinitionParser
and uses the name attribute.
So at startup when the beans get loaded the AttributeEncoders defined in
attribute-resolver that use type SAML2String (or anything that extends
resolver:BaseAttributeEncoderType) with name attribute set would be ignored
because Spring 3.0 had a change in the way it loads beans to get the name
set and register it into the aliasMap. Once that name is in the alias map
there is a check in
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType
to only load beans with a name that is NOT found in the aliasMap.
Spring 2.5.x does not have an issue because Spring does not add the name to
the alias map.
The call that triggers all this loading from shibboleth is in:
edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.ShibbolethAttributeResolver.onNewContextCreated(ApplicationContext
newServiceContext) throws ServiceException
beanNames =
newServiceContext.getBeanNamesForType(AttributeDefinition.class);
--
View this message in context: http://shibboleth.1660669.n2.nabble.com/Is-IDP-tied-to-specific-spring-version-tp7588771p7588896.html
Sent from the Shibboleth - Users mailing list archive at Nabble.com.
More information about the users
mailing list