code: 	private static LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> processMap(
  			LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> requestMap,
  			ExpressionParser parser) {
  		Assert.notNull(parser, "SecurityExpressionHandler returned a null parser object");
  
  		LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> requestToExpressionAttributesMap = new LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>>(
  				requestMap);
  
  		for (Map.Entry<RequestMatcher, Collection<ConfigAttribute>> entry : requestMap
  				.entrySet()) {
  			RequestMatcher request = entry.getKey();
  			Assert.isTrue(entry.getValue().size() == 1,
  					"Expected a single expression attribute for " + request);
  			ArrayList<ConfigAttribute> attributes = new ArrayList<ConfigAttribute>(1);
  			String expression = entry.getValue().toArray(new ConfigAttribute[1])[0]
  					.getAttribute();
  			logger.debug("Adding web access control expression '" + expression + "', for "
  					+ request);
  
  			AbstractVariableEvaluationContextPostProcessor postProcessor = createPostProcessor(
  					request);
  			try {
  				attributes.add(new WebExpressionConfigAttribute(
  						parser.parseExpression(expression), postProcessor));
  			}
  			catch (ParseException e) {
  				throw new IllegalArgumentException(
  						"Failed to parse expression '" + expression + "'");
  			}
  
  			requestToExpressionAttributesMap.put(request, attributes);
  		}
  
  		return requestToExpressionAttributesMap;
  	}
  
  