Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.springframework.security.oauth2.config;
  
  import java.util.List;
  
Common place for OAuth namespace configuration utils.

Author(s):
Ryan Heaton
 
 public class ConfigUtils {
   private ConfigUtils() {
   }
 
   public static BeanDefinition createSecurityMetadataSource(Element elementParserContext pc) {
     List<ElementfilterPatterns = DomUtils.getChildElementsByTagName(element"url");
 
     if (filterPatterns.isEmpty()) {
       return null;
     }
 
     // TODO : add support for lowercase-comparisons
     String patternType = element.getAttribute("path-type");
     if (!StringUtils.hasText(patternType)) {
       patternType = "ant";
     }
 
     MatcherType matcherType = MatcherType.valueOf(patternType);
 
     ManagedMap<BeanDefinitionBeanDefinitioninvocationDefinitionMap = new ManagedMap<BeanDefinitionBeanDefinition>();
 
     for (Element filterPattern : filterPatterns) {
       String path = filterPattern.getAttribute("pattern");
       if (!StringUtils.hasText(path)) {
         pc.getReaderContext().error("pattern attribute cannot be empty or null"filterPattern);
       }
 
       String method = filterPattern.getAttribute("httpMethod");
       if (!StringUtils.hasText(method)) {
         method = null;
       }
 
       String access = filterPattern.getAttribute("resources");
 
       if (StringUtils.hasText(access)) {
         BeanDefinition matcher = matcherType.createMatcher(pathmethod);
         if (access.equals("none")) {
           invocationDefinitionMap.put(matcher, BeanDefinitionBuilder.rootBeanDefinition(Collections.class).setFactoryMethod("emptyList").getBeanDefinition());
         }
         else {
           BeanDefinitionBuilder attributeBuilder = BeanDefinitionBuilder.rootBeanDefinition(SecurityConfig.class);
           attributeBuilder.addConstructorArgValue(access);
           attributeBuilder.setFactoryMethod("createListFromCommaDelimitedString");
 
           if (invocationDefinitionMap.containsKey(matcher)) {
             pc.getReaderContext().warning("Duplicate URL defined: " + path
                                             + ". The original attribute values will be overwritten"pc.extractSource(filterPattern));
           }
 
           invocationDefinitionMap.put(matcherattributeBuilder.getBeanDefinition());
         }
       }
     }
 
     BeanDefinitionBuilder fidsBuilder = BeanDefinitionBuilder.rootBeanDefinition(DefaultFilterInvocationSecurityMetadataSource.class);
     fidsBuilder.addConstructorArgValue(invocationDefinitionMap);
     fidsBuilder.getRawBeanDefinition().setSource(pc.extractSource(element));
 
     return fidsBuilder.getBeanDefinition();
   }
 
   @SuppressWarnings({"unchecked"})
   public static List<BeanMetadataElementfindFilterChain(ParserContext parserContextString explicitRef) {
     String filterChainRef = explicitRef;
     if (!StringUtils.hasText(filterChainRef)) {
       filterChainRef = findDefaultFilterChainBeanId(parserContext);
     }
     return (List<BeanMetadataElement>)
             parserContext.getRegistry().getBeanDefinition(filterChainRef).getConstructorArgumentValues().getArgumentValue(1,List.class).getValue();
   }
 
   @SuppressWarnings({"unchecked"})
   protected static String findDefaultFilterChainBeanId(ParserContext parserContext) {
     BeanDefinition filterChainList = parserContext.getRegistry().getBeanDefinition(.);
     // Get the list of SecurityFilterChain beans
    List<BeanReferencefilterChains = (List<BeanReference>)
              filterChainList.getPropertyValues().getPropertyValue("sourceList").getValue();
    return filterChains.get(filterChains.size() - 1).getBeanName();
  }
New to GrepCode? Check out our FAQ X