bike part reward : setting bean ID property automatically
Rod Widdowson
rdw at steadingsoftware.com
Wed Feb 12 06:21:43 EST 2014
To go down the other leg of this thread:
I don't sense that we got closure on the how to avoid 'p:id="foo" id="foo"'
thing last Friday so I'd like to lay out where I think we need to be:
1) (Channelling Ian) We need to add an interface to ComponentSupport which
implies settability of identity (and we need to change the javadoc on
IndentifableComponent which is wrong in a number of ways). I am not
proposing adding to the AbstractClasses. This feels like a requirement no
matter what else we do.
2) We need to retro fit this Interface to 20 odd class which expose #setId()
as public (see below)
3) This then allows us to extend Tom's change away from a specific class to
all implementors of this interface. We'd need to move the
ProfileActionBeanPostProcessor code to somewhere more general and the bean
definition to an upper level (or possibly introduce a different
post-processor).
4) I'd suggest that as a development aid only, and only for a short time, we
also add a log message to the BeanPostProcess to call out the case where the
two ids are the same - this should allow us to clean up our xml files (which
we need to do anyway).
I'll admit that having a code which effectively duplicates the work of
Spring worries me, but given that we already have post processors it's not a
big deal and anyway I'm not sure that I see a cleaner mechanism.
Rod
The classes that make setId public are:
net.shibboleth.idp.attribute.filter.impl.matcher.AbstractMatcher
net.shibboleth.idp.attribute.filter.impl.policyrule.AbstractPolicyRule
net.shibboleth.idp.attribute.filter.impl.policyrule.saml.AttributeInMetadata
PolicyRule
net.shibboleth.idp.authn.AuthenticationFlowDescriptor
net.shibboleth.idp.authn.SubjectCanonicalizationFlowDescriptor
net.shibboleth.idp.profile.logic.RelyingPartyIdPredicate
net.shibboleth.idp.relyingparty.RelyingPartyConfiguration
net.shibboleth.idp.relyingparty.impl.RelyingPartyConfigurationResolver
net.shibboleth.idp.saml.attribute.mapping.AbstractSAMLAttributeMapper
net.shibboleth.idp.saml.attribute.mapping.AbstractSAMLAttributesMapper
net.shibboleth.idp.saml.impl.attribute.principalconnector.PrincipalConnector
net.shibboleth.idp.saml.impl.nameid.BaseCryptoTransientDecoder
net.shibboleth.idp.saml.impl.nameid.BaseTransientDecoder
net.shibboleth.idp.saml.impl.nameid.DirectNameIDDecoder
net.shibboleth.idp.saml.impl.nameid.DirectNameIdentifierDecoder
net.shibboleth.idp.saml.impl.nameid.LegacyNameIdentifierGenerator
org.opensaml.messaging.handler.AbstractMessageHandler
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.saml.common.profile.AbstractNameIdentifierGenerator
More information about the dev
mailing list