config/src/main/java/org/springframework/security/config/http/HttpConfigurationBuilder.java
private ManagedMap<BeanMetadataElement, BeanDefinition> parseInterceptUrlsForChannelSecurity() {

		ManagedMap<BeanMetadataElement, BeanDefinition> channelRequestMap = new ManagedMap<>();

		for (Element urlElt : interceptUrls) {
			String path = urlElt.getAttribute(ATT_PATH_PATTERN);
			String method = urlElt.getAttribute(ATT_HTTP_METHOD);
			String matcherRef = urlElt.getAttribute(ATT_REQUEST_MATCHER_REF);
			boolean hasMatcherRef = StringUtils.hasText(matcherRef);

			if (!hasMatcherRef && !StringUtils.hasText(path)) {
				pc.getReaderContext().error("pattern attribute cannot be empty or null",
						urlElt);
			}

			String requiredChannel = urlElt.getAttribute(ATT_REQUIRES_CHANNEL);

			if (StringUtils.hasText(requiredChannel)) {
				BeanMetadataElement matcher = hasMatcherRef ? new RuntimeBeanReference(matcherRef) : matcherType.createMatcher(pc, path, method);

				RootBeanDefinition channelAttributes = new RootBeanDefinition(
						ChannelAttributeFactory.class);
				channelAttributes.getConstructorArgumentValues().addGenericArgumentValue(
						requiredChannel);
				channelAttributes.setFactoryMethodName("createChannelAttributes");

				channelRequestMap.put(matcher, channelAttributes);
			}
		}

		return channelRequestMap;
	}
private ManagedMap<BeanMetadataElement, BeanDefinition> parseInterceptUrlsForChannelSecurity() {

		ManagedMap<BeanMetadataElement, BeanDefinition> channelRequestMap = new ManagedMap<>();

		for (Element urlElt : interceptUrls) {
			String path = urlElt.getAttribute(ATT_PATH_PATTERN);
			String method = urlElt.getAttribute(ATT_HTTP_METHOD);
			String matcherRef = urlElt.getAttribute(ATT_REQUEST_MATCHER_REF);
			boolean hasMatcherRef = StringUtils.hasText(matcherRef);

			if (!hasMatcherRef && !StringUtils.hasText(path)) {
				pc.getReaderContext().error("pattern attribute cannot be empty or null",
						urlElt);
			}

			String requiredChannel = urlElt.getAttribute(ATT_REQUIRES_CHANNEL);

			if (StringUtils.hasText(requiredChannel)) {
				BeanMetadataElement matcher = hasMatcherRef ? new RuntimeBeanReference(matcherRef) : matcherType.createMatcher(pc, path, method);

				RootBeanDefinition channelAttributes = new RootBeanDefinition(
						ChannelAttributeFactory.class);
				channelAttributes.getConstructorArgumentValues().addGenericArgumentValue(
						requiredChannel);
				channelAttributes.setFactoryMethodName("createChannelAttributes");

				channelRequestMap.put(matcher, channelAttributes);
			}
		}

		return channelRequestMap;
	}
private ManagedMap < BeanMetadataElement , BeanDefinition > parseInterceptUrlsForChannelSecurity ( ) { ManagedMap < BeanMetadataElement , BeanDefinition > channelRequestMap = new ManagedMap <> ( ) ; for ( Element urlElt : interceptUrls ) { String path = urlElt . getAttribute ( ATT_PATH_PATTERN ) ; String method = urlElt . getAttribute ( ATT_HTTP_METHOD ) ; String matcherRef = urlElt . getAttribute ( ATT_REQUEST_MATCHER_REF ) ; boolean hasMatcherRef = StringUtils . hasText ( matcherRef ) ; if ( ! hasMatcherRef && ! StringUtils . hasText ( path ) ) { pc . getReaderContext ( ) . error ( "pattern attribute cannot be empty or null" , urlElt ) ; } String requiredChannel = urlElt . getAttribute ( ATT_REQUIRES_CHANNEL ) ; if ( StringUtils . hasText ( requiredChannel ) ) { BeanMetadataElement matcher = hasMatcherRef ? new RuntimeBeanReference ( matcherRef ) : matcherType . createMatcher ( pc , path , method ) ; RootBeanDefinition channelAttributes = new RootBeanDefinition ( ChannelAttributeFactory . class ) ; channelAttributes . getConstructorArgumentValues ( ) . addGenericArgumentValue ( requiredChannel ) ; channelAttributes . setFactoryMethodName ( "createChannelAttributes" ) ; channelRequestMap . put ( matcher , channelAttributes ) ; } } return channelRequestMap ; }
Parses the intercept-url elements to obtain the map used by channel security. This
will be empty unless the <tt>requires-channel</tt> attribute has been used on a URL
path.
Parses the intercept - url elements to obtain the map used by channel security . This will be empty unless the <tt > requires - channel< / tt > attribute has been used on a URL path .