List of usage examples for org.springframework.beans.factory.support BeanDefinitionBuilder addConstructorArgValue
public BeanDefinitionBuilder addConstructorArgValue(@Nullable Object value)
From source file:org.springframework.integration.kafka.config.xml.KafkaProducerContextParser.java
private void parseProducerConfigurations(Element topics, ParserContext parserContext, BeanDefinitionBuilder builder, Element parentElem) { Map<String, BeanMetadataElement> producerConfigurationsMap = new ManagedMap<String, BeanMetadataElement>(); for (Element producerConfiguration : DomUtils.getChildElementsByTagName(topics, "producer-configuration")) { BeanDefinitionBuilder producerMetadataBuilder = BeanDefinitionBuilder .genericBeanDefinition(ProducerMetadata.class); producerMetadataBuilder.addConstructorArgValue(producerConfiguration.getAttribute("topic")); producerMetadataBuilder.addConstructorArgValue(producerConfiguration.getAttribute("key-class-type")); producerMetadataBuilder.addConstructorArgValue(producerConfiguration.getAttribute("value-class-type")); String keySerializer = producerConfiguration.getAttribute("key-serializer"); String keyEncoder = producerConfiguration.getAttribute("key-encoder"); Assert.isTrue((StringUtils.hasText(keySerializer) ^ StringUtils.hasText(keyEncoder)), "Exactly one of 'key-serializer' or 'key-encoder' must be specified"); if (StringUtils.hasText(keyEncoder)) { if (log.isWarnEnabled()) { log.warn("'key-encoder' is a deprecated option, use 'key-serializer' instead."); }//ww w . j av a2 s . c o m BeanDefinitionBuilder encoderAdaptingSerializerBean = BeanDefinitionBuilder .genericBeanDefinition(EncoderAdaptingSerializer.class); encoderAdaptingSerializerBean.addConstructorArgReference(keyEncoder); producerMetadataBuilder.addConstructorArgValue(encoderAdaptingSerializerBean.getBeanDefinition()); } else { producerMetadataBuilder.addConstructorArgReference(keySerializer); } String valueSerializer = producerConfiguration.getAttribute("value-serializer"); String valueEncoder = producerConfiguration.getAttribute("value-encoder"); Assert.isTrue((StringUtils.hasText(valueSerializer) ^ StringUtils.hasText(valueEncoder)), "Exactly one of 'value-serializer' or 'value-encoder' must be specified"); if (StringUtils.hasText(valueEncoder)) { if (log.isWarnEnabled()) { log.warn("'value-encoder' is a deprecated option, use 'value-serializer' instead."); } BeanDefinitionBuilder encoderAdaptingSerializerBean = BeanDefinitionBuilder .genericBeanDefinition(EncoderAdaptingSerializer.class); encoderAdaptingSerializerBean.addConstructorArgReference(valueEncoder); producerMetadataBuilder.addConstructorArgValue(encoderAdaptingSerializerBean.getBeanDefinition()); } else { producerMetadataBuilder.addConstructorArgReference(valueSerializer); } IntegrationNamespaceUtils.setReferenceIfAttributeDefined(producerMetadataBuilder, producerConfiguration, "partitioner"); if (StringUtils.hasText(producerConfiguration.getAttribute("partitioner"))) { if (log.isWarnEnabled()) { log.warn("'partitioner' is a deprecated option. Use the 'kafka_partitionId' message header or " + "the partition argument in the send() or convertAndSend() methods"); } } IntegrationNamespaceUtils.setValueIfAttributeDefined(producerMetadataBuilder, producerConfiguration, "compression-type"); IntegrationNamespaceUtils.setValueIfAttributeDefined(producerMetadataBuilder, producerConfiguration, "batch-bytes"); AbstractBeanDefinition producerMetadataBeanDefinition = producerMetadataBuilder.getBeanDefinition(); String producerPropertiesBean = parentElem.getAttribute("producer-properties"); BeanDefinitionBuilder producerFactoryBuilder = BeanDefinitionBuilder .genericBeanDefinition(ProducerFactoryBean.class); producerFactoryBuilder.addConstructorArgValue(producerMetadataBeanDefinition); final String brokerList = producerConfiguration.getAttribute("broker-list"); if (StringUtils.hasText(brokerList)) { producerFactoryBuilder.addConstructorArgValue(producerConfiguration.getAttribute("broker-list")); } if (StringUtils.hasText(producerPropertiesBean)) { producerFactoryBuilder.addConstructorArgReference(producerPropertiesBean); } AbstractBeanDefinition producerFactoryBeanDefinition = producerFactoryBuilder.getBeanDefinition(); BeanDefinitionBuilder producerConfigurationBuilder = BeanDefinitionBuilder .genericBeanDefinition(ProducerConfiguration.class) .addConstructorArgValue(producerMetadataBeanDefinition) .addConstructorArgValue(producerFactoryBeanDefinition); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(producerConfigurationBuilder, producerConfiguration, "conversion-service"); producerConfigurationsMap.put(producerConfiguration.getAttribute("topic"), producerConfigurationBuilder.getBeanDefinition()); } builder.addPropertyValue("producerConfigurations", producerConfigurationsMap); }
From source file:org.springframework.ldap.config.ContextSourceParser.java
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(LdapContextSource.class); String username = element.getAttribute(ATT_USERNAME); String password = element.getAttribute(ATT_PASSWORD); String url = element.getAttribute(ATT_URL); Assert.hasText(url, "url attribute must be specified"); builder.addPropertyValue("userDn", username); builder.addPropertyValue("password", password); BeanDefinitionBuilder urlsBuilder = BeanDefinitionBuilder.rootBeanDefinition(UrlsFactory.class) .setFactoryMethod("urls").addConstructorArgValue(url); builder.addPropertyValue("urls", urlsBuilder.getBeanDefinition()); builder.addPropertyValue("base", getString(element, ATT_BASE, "")); builder.addPropertyValue("referral", getString(element, ATT_REFERRAL, null)); boolean anonymousReadOnly = getBoolean(element, ATT_ANONYMOUS_READ_ONLY, false); builder.addPropertyValue("anonymousReadOnly", anonymousReadOnly); boolean nativePooling = getBoolean(element, ATT_NATIVE_POOLING, false); builder.addPropertyValue("pooled", nativePooling); String authStrategyRef = element.getAttribute(ATT_AUTHENTICATION_STRATEGY_REF); if (StringUtils.hasText(authStrategyRef)) { builder.addPropertyReference("authenticationStrategy", authStrategyRef); }// w w w . j a v a 2s .com String authSourceRef = element.getAttribute(ATT_AUTHENTICATION_SOURCE_REF); if (StringUtils.hasText(authSourceRef)) { builder.addPropertyReference("authenticationSource", authSourceRef); } else { Assert.hasText(username, "username attribute must be specified unless an authentication-source-ref explicitly configured"); Assert.hasText(password, "password attribute must be specified unless an authentication-source-ref explicitly configured"); } String baseEnvPropsRef = element.getAttribute(ATT_BASE_ENV_PROPS_REF); if (StringUtils.hasText(baseEnvPropsRef)) { builder.addPropertyReference("baseEnvironmentProperties", baseEnvPropsRef); } BeanDefinition targetContextSourceDefinition = builder.getBeanDefinition(); targetContextSourceDefinition = applyPoolingIfApplicable(targetContextSourceDefinition, element, nativePooling); BeanDefinition actualContextSourceDefinition = targetContextSourceDefinition; if (!anonymousReadOnly) { BeanDefinitionBuilder proxyBuilder = BeanDefinitionBuilder .rootBeanDefinition(TransactionAwareContextSourceProxy.class); proxyBuilder.addConstructorArgValue(targetContextSourceDefinition); actualContextSourceDefinition = proxyBuilder.getBeanDefinition(); } String id = getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); parserContext.registerBeanComponent(new BeanComponentDefinition(actualContextSourceDefinition, id)); return actualContextSourceDefinition; }
From source file:org.springframework.ldap.config.ContextSourceParser.java
private void populatePoolConfigProperties(BeanDefinitionBuilder builder, Element element) { BeanDefinitionBuilder configBuilder = BeanDefinitionBuilder.rootBeanDefinition(PoolConfig.class); configBuilder.addPropertyValue("maxTotal", getString(element, ATT_MAX_TOTAL, String.valueOf(DEFAULT_MAX_TOTAL))); configBuilder.addPropertyValue("maxTotalPerKey", getString(element, ATT_MAX_TOTAL_PER_KEY, String.valueOf(DEFAULT_MAX_TOTAL_PER_KEY))); configBuilder.addPropertyValue("maxIdlePerKey", getString(element, ATT_MAX_IDLE_PER_KEY, String.valueOf(DEFAULT_MAX_IDLE_PER_KEY))); configBuilder.addPropertyValue("minIdlePerKey", getString(element, ATT_MIN_IDLE_PER_KEY, String.valueOf(DEFAULT_MIN_IDLE_PER_KEY))); configBuilder.addPropertyValue("evictionPolicyClassName", getString(element, ATT_EVICTION_POLICY_CLASS, DEFAULT_EVICTION_POLICY_CLASS_NAME)); configBuilder.addPropertyValue("fairness", getBoolean(element, ATT_FAIRNESS, DEFAULT_FAIRNESS)); configBuilder.addPropertyValue("jmxEnabled", getBoolean(element, ATT_JMX_ENABLE, DEFAULT_JMX_ENABLE)); configBuilder.addPropertyValue("jmxNameBase", getString(element, ATT_JMX_NAME_BASE, DEFAULT_JMX_NAME_BASE)); configBuilder.addPropertyValue("jmxNamePrefix", getString(element, ATT_JMX_NAME_PREFIX, DEFAULT_JMX_NAME_PREFIX)); configBuilder.addPropertyValue("lifo", getBoolean(element, ATT_LIFO, DEFAULT_LIFO)); configBuilder.addPropertyValue("maxWaitMillis", getString(element, ATT_MAX_WAIT, String.valueOf(DEFAULT_MAX_WAIT_MILLIS))); configBuilder.addPropertyValue("blockWhenExhausted", Boolean.valueOf( getString(element, ATT_BLOCK_WHEN_EXHAUSTED, String.valueOf(DEFAULT_BLOCK_WHEN_EXHAUSTED)))); configBuilder.addPropertyValue("testOnBorrow", getBoolean(element, ATT_TEST_ON_BORROW, false)); configBuilder.addPropertyValue("testOnCreate", getBoolean(element, ATT_TEST_ON_CREATE, false)); configBuilder.addPropertyValue("testOnReturn", getBoolean(element, ATT_TEST_ON_RETURN, false)); configBuilder.addPropertyValue("testWhileIdle", getBoolean(element, ATT_TEST_WHILE_IDLE, false)); configBuilder.addPropertyValue("timeBetweenEvictionRunsMillis", getString(element, ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); configBuilder.addPropertyValue("numTestsPerEvictionRun", getString(element, ATT_TESTS_PER_EVICTION_RUN, String.valueOf(DEFAULT_TESTS_PER_EVICTION_RUN))); configBuilder.addPropertyValue("minEvictableIdleTimeMillis", getString(element, ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); configBuilder.addPropertyValue("softMinEvictableIdleTimeMillis", getString(element, ATT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS, String.valueOf(DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS))); builder.addConstructorArgValue(configBuilder.getBeanDefinition()); }
From source file:org.springframework.security.config.debug.SecurityDebugBeanFactoryPostProcessor.java
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { logger.warn("\n\n" + "********************************************************************\n" + "********** Security debugging is enabled. *************\n" + "********** This may include sensitive information. *************\n" + "********** Do not use in a production system! *************\n" + "********************************************************************\n\n"); // SPRING_SECURITY_FILTER_CHAIN does not exist yet since it is an alias that has // not been processed, so use FILTER_CHAIN_PROXY if (registry.containsBeanDefinition(BeanIds.FILTER_CHAIN_PROXY)) { BeanDefinition fcpBeanDef = registry.getBeanDefinition(BeanIds.FILTER_CHAIN_PROXY); BeanDefinitionBuilder debugFilterBldr = BeanDefinitionBuilder.genericBeanDefinition(DebugFilter.class); debugFilterBldr.addConstructorArgValue(fcpBeanDef); // Remove the alias to SPRING_SECURITY_FILTER_CHAIN, so that it does not // override the new // SPRING_SECURITY_FILTER_CHAIN definition registry.removeAlias(BeanIds.SPRING_SECURITY_FILTER_CHAIN); registry.registerBeanDefinition(BeanIds.SPRING_SECURITY_FILTER_CHAIN, debugFilterBldr.getBeanDefinition()); }/*w ww . j av a 2s . c om*/ }
From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java
void createOpenIDLoginFilter(BeanReference sessionStrategy, BeanReference authManager) { Element openIDLoginElt = DomUtils.getChildElementByTagName(httpElt, Elements.OPENID_LOGIN); RootBeanDefinition openIDFilter = null; if (openIDLoginElt != null) { FormLoginBeanDefinitionParser parser = new FormLoginBeanDefinitionParser("/login/openid", null, OPEN_ID_AUTHENTICATION_PROCESSING_FILTER_CLASS, requestCache, sessionStrategy, allowSessionCreation, portMapper, portResolver); parser.parse(openIDLoginElt, pc); openIDFilter = parser.getFilterBean(); openIDEntryPoint = parser.getEntryPointBean(); openidLoginProcessingUrl = parser.getLoginProcessingUrl(); openIDLoginPage = parser.getLoginPage(); List<Element> attrExElts = DomUtils.getChildElementsByTagName(openIDLoginElt, Elements.OPENID_ATTRIBUTE_EXCHANGE); if (!attrExElts.isEmpty()) { // Set up the consumer with the required attribute list BeanDefinitionBuilder consumerBldr = BeanDefinitionBuilder .rootBeanDefinition(OPEN_ID_CONSUMER_CLASS); BeanDefinitionBuilder axFactory = BeanDefinitionBuilder .rootBeanDefinition(OPEN_ID_ATTRIBUTE_FACTORY_CLASS); ManagedMap<String, ManagedList<BeanDefinition>> axMap = new ManagedMap<String, ManagedList<BeanDefinition>>(); for (Element attrExElt : attrExElts) { String identifierMatch = attrExElt.getAttribute("identifier-match"); if (!StringUtils.hasText(identifierMatch)) { if (attrExElts.size() > 1) { pc.getReaderContext() .error("You must supply an identifier-match attribute if using more" + " than one " + Elements.OPENID_ATTRIBUTE_EXCHANGE + " element", attrExElt); }//from w w w .ja v a2s.co m // Match anything identifierMatch = ".*"; } axMap.put(identifierMatch, parseOpenIDAttributes(attrExElt)); } axFactory.addConstructorArgValue(axMap); consumerBldr.addConstructorArgValue(axFactory.getBeanDefinition()); openIDFilter.getPropertyValues().addPropertyValue("consumer", consumerBldr.getBeanDefinition()); } } if (openIDFilter != null) { openIDFilter.getPropertyValues().addPropertyValue("allowSessionCreation", allowSessionCreation); openIDFilter.getPropertyValues().addPropertyValue("authenticationManager", authManager); // Required by login page filter openIDFilterId = pc.getReaderContext().generateBeanName(openIDFilter); pc.registerBeanComponent(new BeanComponentDefinition(openIDFilter, openIDFilterId)); injectRememberMeServicesRef(openIDFilter, rememberMeServicesId); createOpenIDProvider(); } }
From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java
private ManagedList<BeanDefinition> parseOpenIDAttributes(Element attrExElt) { ManagedList<BeanDefinition> attributes = new ManagedList<>(); for (Element attElt : DomUtils.getChildElementsByTagName(attrExElt, Elements.OPENID_ATTRIBUTE)) { String name = attElt.getAttribute("name"); String type = attElt.getAttribute("type"); String required = attElt.getAttribute("required"); String count = attElt.getAttribute("count"); BeanDefinitionBuilder attrBldr = BeanDefinitionBuilder.rootBeanDefinition(OPEN_ID_ATTRIBUTE_CLASS); attrBldr.addConstructorArgValue(name); attrBldr.addConstructorArgValue(type); if (StringUtils.hasLength(required)) { attrBldr.addPropertyValue("required", Boolean.valueOf(required)); }// w ww.j av a 2 s. c o m if (StringUtils.hasLength(count)) { attrBldr.addPropertyValue("count", Integer.parseInt(count)); } attributes.add(attrBldr.getBeanDefinition()); } return attributes; }
From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java
void createBasicFilter(BeanReference authManager) { Element basicAuthElt = DomUtils.getChildElementByTagName(httpElt, Elements.BASIC_AUTH); if (basicAuthElt == null && !autoConfig) { // No basic auth, do nothing return;/* w ww . j a v a 2 s. c om*/ } String realm = httpElt.getAttribute(ATT_REALM); if (!StringUtils.hasText(realm)) { realm = DEF_REALM; } BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder .rootBeanDefinition(BasicAuthenticationFilter.class); String entryPointId; if (basicAuthElt != null) { if (StringUtils.hasText(basicAuthElt.getAttribute(ATT_ENTRY_POINT_REF))) { basicEntryPoint = new RuntimeBeanReference(basicAuthElt.getAttribute(ATT_ENTRY_POINT_REF)); } injectAuthenticationDetailsSource(basicAuthElt, filterBuilder); } if (basicEntryPoint == null) { RootBeanDefinition entryPoint = new RootBeanDefinition(BasicAuthenticationEntryPoint.class); entryPoint.setSource(pc.extractSource(httpElt)); entryPoint.getPropertyValues().addPropertyValue("realmName", realm); entryPointId = pc.getReaderContext().generateBeanName(entryPoint); pc.registerBeanComponent(new BeanComponentDefinition(entryPoint, entryPointId)); basicEntryPoint = new RuntimeBeanReference(entryPointId); } filterBuilder.addConstructorArgValue(authManager); filterBuilder.addConstructorArgValue(basicEntryPoint); basicFilter = filterBuilder.getBeanDefinition(); }
From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java
void createJeeFilter(BeanReference authManager) { final String ATT_MAPPABLE_ROLES = "mappable-roles"; Element jeeElt = DomUtils.getChildElementByTagName(httpElt, Elements.JEE); RootBeanDefinition filter = null;/* ww w .j a v a 2 s. c om*/ if (jeeElt != null) { BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder .rootBeanDefinition(J2eePreAuthenticatedProcessingFilter.class); filterBuilder.getRawBeanDefinition().setSource(pc.extractSource(jeeElt)); filterBuilder.addPropertyValue("authenticationManager", authManager); BeanDefinitionBuilder adsBldr = BeanDefinitionBuilder .rootBeanDefinition(J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.class); adsBldr.addPropertyValue("userRoles2GrantedAuthoritiesMapper", new RootBeanDefinition(SimpleAttributes2GrantedAuthoritiesMapper.class)); String roles = jeeElt.getAttribute(ATT_MAPPABLE_ROLES); Assert.hasLength(roles, "roles is expected to have length"); BeanDefinitionBuilder rolesBuilder = BeanDefinitionBuilder.rootBeanDefinition(StringUtils.class); rolesBuilder.addConstructorArgValue(roles); rolesBuilder.setFactoryMethod("commaDelimitedListToSet"); RootBeanDefinition mappableRolesRetriever = new RootBeanDefinition( SimpleMappableAttributesRetriever.class); mappableRolesRetriever.getPropertyValues().addPropertyValue("mappableAttributes", rolesBuilder.getBeanDefinition()); adsBldr.addPropertyValue("mappableRolesRetriever", mappableRolesRetriever); filterBuilder.addPropertyValue("authenticationDetailsSource", adsBldr.getBeanDefinition()); filter = (RootBeanDefinition) filterBuilder.getBeanDefinition(); createPrauthEntryPoint(jeeElt); createJeeProvider(); } jeeFilter = filter; }
From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java
void createExceptionTranslationFilter() { BeanDefinitionBuilder etfBuilder = BeanDefinitionBuilder .rootBeanDefinition(ExceptionTranslationFilter.class); accessDeniedHandler = createAccessDeniedHandler(httpElt, pc); etfBuilder.addPropertyValue("accessDeniedHandler", accessDeniedHandler); assert requestCache != null; mainEntryPoint = selectEntryPoint(); etfBuilder.addConstructorArgValue(mainEntryPoint); etfBuilder.addConstructorArgValue(requestCache); etf = etfBuilder.getBeanDefinition(); }
From source file:org.springframework.security.config.http.FilterInvocationSecurityMetadataSourceParser.java
static RootBeanDefinition createSecurityMetadataSource(List<Element> interceptUrls, boolean addAllAuth, Element httpElt, ParserContext pc) { MatcherType matcherType = MatcherType.fromElement(httpElt); boolean useExpressions = isUseExpressions(httpElt); ManagedMap<BeanMetadataElement, BeanDefinition> requestToAttributesMap = parseInterceptUrlsForFilterInvocationRequestMap( matcherType, interceptUrls, useExpressions, addAllAuth, pc); BeanDefinitionBuilder fidsBuilder; if (useExpressions) { Element expressionHandlerElt = DomUtils.getChildElementByTagName(httpElt, Elements.EXPRESSION_HANDLER); String expressionHandlerRef = expressionHandlerElt == null ? null : expressionHandlerElt.getAttribute("ref"); if (StringUtils.hasText(expressionHandlerRef)) { logger.info("Using bean '" + expressionHandlerRef + "' as web SecurityExpressionHandler implementation"); } else {/* ww w .j a v a2 s . c o m*/ expressionHandlerRef = registerDefaultExpressionHandler(pc); } fidsBuilder = BeanDefinitionBuilder .rootBeanDefinition(ExpressionBasedFilterInvocationSecurityMetadataSource.class); fidsBuilder.addConstructorArgValue(requestToAttributesMap); fidsBuilder.addConstructorArgReference(expressionHandlerRef); } else { fidsBuilder = BeanDefinitionBuilder .rootBeanDefinition(DefaultFilterInvocationSecurityMetadataSource.class); fidsBuilder.addConstructorArgValue(requestToAttributesMap); } fidsBuilder.getRawBeanDefinition().setSource(pc.extractSource(httpElt)); return (RootBeanDefinition) fidsBuilder.getBeanDefinition(); }