[java-identity-provider COMMIT] /trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingpart...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Feb 27 05:19:59 EST 2015
Author: rdw
Date: Fri Feb 27 05:19:59 2015
New Revision: 7385
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7385&view=rev
Log:
IDP-628 Bounce the decision on trustedNameCheckEnabled into a factory bean. This allows property replacement
Modified:
trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/AbstractStaticPKIXParser.java
Modified: trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/AbstractStaticPKIXParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/AbstractStaticPKIXParser.java?rev=7385&r1=7384&r2=7385&view=diff
==============================================================================
--- trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/AbstractStaticPKIXParser.java (original)
+++ trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/AbstractStaticPKIXParser.java Fri Feb 27 05:19:59 2015
@@ -24,16 +24,17 @@
import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.security.SecurityNamespaceHandler;
-import net.shibboleth.utilities.java.support.xml.AttributeSupport;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.opensaml.security.x509.impl.BasicX509CredentialNameEvaluator;
import org.opensaml.security.x509.impl.CertPathPKIXTrustEvaluator;
import org.opensaml.security.x509.impl.StaticPKIXValidationInformationResolver;
+import org.opensaml.security.x509.impl.X509CredentialNameEvaluator;
+import org.springframework.beans.factory.config.AbstractFactoryBean;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Attr;
import org.w3c.dom.Element;
/**
@@ -77,7 +78,7 @@
* @param parserContext the context to parse inside
* @return the definition
*/
- protected BeanDefinition getPKIXTrustEvaluator(@Nonnull final Element element,
+ protected BeanDefinition getPKIXTrustEvaluator(@Nonnull final Element element,
@Nonnull final ParserContext parserContext) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(CertPathPKIXTrustEvaluator.class);
@@ -90,33 +91,56 @@
}
return builder.getBeanDefinition();
}
-
+
/**
- * Get the effective X509CredentialNameEvaluator to use. Currently we return a literal
- * value, but in the future a BeanDefinition could be returned if necessary if we support
- * toggling the name evaluator settings, hence the Object return type.
+ * Get the effective X509CredentialNameEvaluator to use. Currently we return a literal value, but in the future a
+ * BeanDefinition could be returned if necessary if we support toggling the name evaluator settings, hence the
+ * Object return type.
*
* @param element what to parse
* @param parserContext the context to parse inside
* @return an X509CredentialNameEvaluator instance or a BeanDefinition. May be null.
*/
- protected Object getX509CredentialNameEvaluator(@Nonnull final Element element,
+ protected Object getX509CredentialNameEvaluator(@Nonnull final Element element,
@Nonnull final ParserContext parserContext) {
-
- boolean trustedNameCheckEnabled = true;
- Attr attrValue = element.getAttributeNodeNS(null, "trustedNameCheckEnabled");
+
+ final BeanDefinitionBuilder builder =
+ BeanDefinitionBuilder.genericBeanDefinition(X509CredentialNameEvaluatorFactoryBean.class);
+ String attrValue = StringSupport.trimOrNull(element.getAttributeNS(null, "trustedNameCheckEnabled"));
if (attrValue != null) {
- Boolean value = AttributeSupport.getAttributeValueAsBoolean(attrValue);
- if (value != null) {
- trustedNameCheckEnabled = value;
+ builder.addPropertyValue("trustedNameCheckEnabled", attrValue);
+ }
+ return builder.getBeanDefinition();
+ }
+
+ /**
+ * FactoryBean to do a deferred decision on whether to create a {@link X509CredentialNameEvaluator}. This is in a
+ * factory bean to allow for property replacement. The default (no value setting) is true.
+ */
+ protected static class X509CredentialNameEvaluatorFactoryBean extends
+ AbstractFactoryBean<X509CredentialNameEvaluator> {
+
+ /** Do we emit a {@link X509CredentialNameEvaluator} or not. */
+ private boolean trustedNameCheckEnabled = true;
+
+ /** Setter for {@link #trustedNameCheckEnabled}.
+ * @param enabled whether we emit a the {@link X509CredentialNameEvaluator} .*/
[... 27 lines stripped ...]
More information about the commits
mailing list