当前位置: 首页>>代码示例>>Java>>正文


Java DefaultFilterInvocationSecurityMetadataSource类代码示例

本文整理汇总了Java中org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource的典型用法代码示例。如果您正苦于以下问题:Java DefaultFilterInvocationSecurityMetadataSource类的具体用法?Java DefaultFilterInvocationSecurityMetadataSource怎么用?Java DefaultFilterInvocationSecurityMetadataSource使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DefaultFilterInvocationSecurityMetadataSource类属于org.springframework.security.web.access.intercept包,在下文中一共展示了DefaultFilterInvocationSecurityMetadataSource类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testgetAttributesFilter

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
@Test
public void testgetAttributesFilter() throws Exception {
   try {
      // CibetFilterInvocationSecurityMetadataSource fs = new CibetFilterInvocationSecurityMetadataSource(
      // new DefaultFilterInvocationSecurityMetadataSource(null,
      // new LinkedHashMap<RequestKey, Collection<ConfigAttribute>>()));
      CibetFilterInvocationSecurityMetadataSource fs = new CibetFilterInvocationSecurityMetadataSource(
            new DefaultFilterInvocationSecurityMetadataSource(new LinkedHashMap()));
      fs.getAttributes("nixi");
      Assert.fail();
   } catch (ClassCastException e) {
      // Spring 3.0.3 : IllegalArgumentException
      // Spring 3.2: ClassCastException
      log.info(e.getMessage());
   }
}
 
开发者ID:Wolfgang-Winter,项目名称:cibet,代码行数:17,代码来源:CibetFilterInvocationSecurityMetadataSourceTest.java

示例2: buildSecurityMetadataSource

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
/****
	 * 基于url匹配拦截时,转换为ExpressionBasedFilterInvocationSecurityMetadataSource
	 * @param source
	 * @return
	 */
	@Override
	@SuppressWarnings("unchecked")
	public void buildSecurityMetadataSource(){
		Assert.notNull(filterSecurityInterceptor);
		this.buildRequestMap();
		DefaultFilterInvocationSecurityMetadataSource originMetadata = (DefaultFilterInvocationSecurityMetadataSource)filterSecurityInterceptor.getSecurityMetadataSource();
		//这个内置实现不支持一个url映射到多个表达式
//		ExpressionBasedFilterInvocationSecurityMetadataSource fism = new ExpressionBasedFilterInvocationSecurityMetadataSource(requestMap, securityExpressionHandler);
		
		Map<RequestMatcher, Collection<ConfigAttribute>> originRequestMap = (Map<RequestMatcher, Collection<ConfigAttribute>>)ReflectUtils.getFieldValue(originMetadata, "requestMap", false);
		if(originRequestMap!=null && !originRequestMap.isEmpty()){
			this.requestMap.putAll(originRequestMap);
		}
		DefaultFilterInvocationSecurityMetadataSource fism = new DefaultFilterInvocationSecurityMetadataSource(requestMap);
		this.filterSecurityInterceptor.setSecurityMetadataSource(fism);
	}
 
开发者ID:wayshall,项目名称:onetwo,代码行数:22,代码来源:DatabaseSecurityMetadataSource.java

示例3: getFilterSecurityInterceptor

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
/**
 * Gets the filter security interceptor.
 *
 * @return the filter security interceptor
 */
@Bean(name = "fsi")
public FilterSecurityInterceptor getFilterSecurityInterceptor() {
  FilterSecurityInterceptor interceptor = new FilterSecurityInterceptor();
  interceptor.setAuthenticationManager(getProviderManager());
  interceptor.setAccessDecisionManager(getAffirmativeBased());

  LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> requestMap = new LinkedHashMap<>();
  requestMap.put(new AntPathRequestMatcher("/adm/**"),
      SecurityConfig.createListFromCommaDelimitedString("ROLE_MANAGER,ROLE_MANAGER-GUI"));
  requestMap.put(new AntPathRequestMatcher("/adm/restartvm.ajax"), SecurityConfig
      .createListFromCommaDelimitedString("ROLE_POWERUSERPLUS,ROLE_MANAGER,ROLE_MANAGER-GUI"));
  requestMap.put(new AntPathRequestMatcher("/sql/**"), SecurityConfig
      .createListFromCommaDelimitedString("ROLE_POWERUSERPLUS,ROLE_MANAGER,ROLE_MANAGER-GUI"));
  requestMap.put(new AntPathRequestMatcher("/app/**"),
      SecurityConfig.createListFromCommaDelimitedString(
          "ROLE_POWERUSER,ROLE_POWERUSERPLUS,ROLE_MANAGER,ROLE_MANAGER-GUI"));
  requestMap.put(new AntPathRequestMatcher("/**"),
      SecurityConfig.createListFromCommaDelimitedString(
          "ROLE_PROBEUSER,ROLE_POWERUSER,ROLE_POWERUSERPLUS,ROLE_MANAGER,ROLE_MANAGER-GUI"));

  interceptor
      .setSecurityMetadataSource(new DefaultFilterInvocationSecurityMetadataSource(requestMap));
  return interceptor;
}
 
开发者ID:psi-probe,项目名称:psi-probe,代码行数:30,代码来源:ProbeSecurityConfig.java

示例4: createSecurityMetadataSource

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
public static BeanDefinition createSecurityMetadataSource(Element element, ParserContext pc) {
  List<Element> filterPatterns = DomUtils.getChildElementsByTagName(element, "url");

  if (filterPatterns.isEmpty()) {
    return null;
  }

  String patternType = element.getAttribute("path-type");
  if (!StringUtils.hasText(patternType)) {
    patternType = "ant";
  }

  MatcherType matcherType = MatcherType.valueOf(patternType);

  ManagedMap<BeanDefinition, BeanDefinition> invocationDefinitionMap = new ManagedMap<BeanDefinition, BeanDefinition>();

  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(path, method);
      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(matcher, attributeBuilder.getBeanDefinition());
      }
    }
  }

  BeanDefinitionBuilder fidsBuilder = BeanDefinitionBuilder.rootBeanDefinition(DefaultFilterInvocationSecurityMetadataSource.class);
  fidsBuilder.addConstructorArgValue(invocationDefinitionMap);
  fidsBuilder.getRawBeanDefinition().setSource(pc.extractSource(element));

  return fidsBuilder.getBeanDefinition();
}
 
开发者ID:jungyang,项目名称:oauth-client-master,代码行数:56,代码来源:ConfigUtils.java

示例5: execute

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
public void execute(FilterSecurityInterceptor filterSecurityInterceptor,
        Map<String, String> resourceMap) {
    Assert.notNull(filterSecurityInterceptor);
    Assert.notNull(resourceMap);

    logger.info("refresh url resource");

    LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> requestMap = null;
    requestMap = new LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>>();

    for (Map.Entry<String, String> entry : resourceMap.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        requestMap.put(new AntPathRequestMatcher(key),
                SecurityConfig.createListFromCommaDelimitedString(value));
    }

    FilterInvocationSecurityMetadataSource source = new DefaultFilterInvocationSecurityMetadataSource(
            requestMap);
    filterSecurityInterceptor.setSecurityMetadataSource(source);
}
 
开发者ID:zhaojunfei,项目名称:lemon,代码行数:22,代码来源:UrlResourcePopulator.java

示例6: testgetCibetAttributesExpression

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
@Test
public void testgetCibetAttributesExpression() throws Exception {
   // CibetFilterInvocationSecurityMetadataSource fs = new CibetFilterInvocationSecurityMetadataSource(
   // new DefaultFilterInvocationSecurityMetadataSource(null,
   // new LinkedHashMap<RequestKey, Collection<ConfigAttribute>>()));
   CibetFilterInvocationSecurityMetadataSource fs = new CibetFilterInvocationSecurityMetadataSource(
         new DefaultFilterInvocationSecurityMetadataSource(new LinkedHashMap()));
   CibetFilterInvocation fi = new CibetFilterInvocation(req, resp, chain);
   fi.setAccessRuleExpression("hasRole('Walter')");
   Collection<ConfigAttribute> c = fs.getAttributes(fi);
   Assert.assertEquals(1, c.size());
   ConfigAttribute ca = c.iterator().next();
   Assert.assertTrue(ca instanceof CibetWebExpressionConfigAttribute);
}
 
开发者ID:Wolfgang-Winter,项目名称:cibet,代码行数:15,代码来源:CibetFilterInvocationSecurityMetadataSourceTest.java

示例7: testgetCibetAttributes

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
@Test
public void testgetCibetAttributes() throws Exception {
   // CibetFilterInvocationSecurityMetadataSource fs = new CibetFilterInvocationSecurityMetadataSource(
   // new DefaultFilterInvocationSecurityMetadataSource(null,
   // new LinkedHashMap<RequestKey, Collection<ConfigAttribute>>()));
   CibetFilterInvocationSecurityMetadataSource fs = new CibetFilterInvocationSecurityMetadataSource(
         new DefaultFilterInvocationSecurityMetadataSource(new LinkedHashMap()));
   CibetFilterInvocation fi = new CibetFilterInvocation(req, resp, chain);
   fi.setAccessRule("ROLE_VIEH");
   Collection<ConfigAttribute> c = fs.getAttributes(fi);
   Assert.assertEquals(1, c.size());
   ConfigAttribute ca = c.iterator().next();
   Assert.assertTrue(ca instanceof SecurityConfig);
}
 
开发者ID:Wolfgang-Winter,项目名称:cibet,代码行数:15,代码来源:CibetFilterInvocationSecurityMetadataSourceTest.java

示例8: addSecureChannel

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
private void addSecureChannel(List<Filter> filters, Protocol protocol) {
    ChannelProcessingFilter channelProcessingFilter = new ChannelProcessingFilter();
    channelProcessingFilter.setChannelDecisionManager(channelDecisionManager);

    RequestMatcher anyRequest = AnyRequestMatcher.INSTANCE;

    LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> requestMap = new LinkedHashMap<>();
    Collection<ConfigAttribute> configAtts = new ArrayList<>();

    switch (protocol) {
        case HTTP:
            configAtts.add(new SecurityConfig("ANY_CHANNEL"));
            break;
        case HTTPS:
            configAtts.add(new SecurityConfig("REQUIRES_SECURE_CHANNEL"));
            break;
        default:
    }

    requestMap.put(anyRequest, configAtts);
    FilterInvocationSecurityMetadataSource securityMetadataSource = new DefaultFilterInvocationSecurityMetadataSource(requestMap);
    channelProcessingFilter.setSecurityMetadataSource(securityMetadataSource);

    filters.add(channelProcessingFilter);
}
 
开发者ID:motech,项目名称:motech,代码行数:26,代码来源:SecurityRuleBuilder.java

示例9: refresh

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
public void refresh() {
    if ((filterSecurityInterceptor == null) || (urlSourceFetcher == null)) {
        logger.info(
                "filterSecurityInterceptor : {}, urlSourceFetcher : {}",
                filterSecurityInterceptor, urlSourceFetcher);

        return;
    }

    logger.info("execute refresh");

    Map<String, String> resourceMap = urlSourceFetcher.getSource(null);

    LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> requestMap = null;
    requestMap = new LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>>();

    for (Map.Entry<String, String> entry : resourceMap.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        requestMap.put(new AntPathRequestMatcher(key),
                SecurityConfig.createListFromCommaDelimitedString(value));
    }

    FilterInvocationSecurityMetadataSource source = new DefaultFilterInvocationSecurityMetadataSource(
            requestMap);
    filterSecurityInterceptor.setSecurityMetadataSource(source);
}
 
开发者ID:zhaojunfei,项目名称:lemon,代码行数:28,代码来源:UrlSourceBuilder.java

示例10: addFilterSecurityInterceptor

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
private void addFilterSecurityInterceptor(List<Filter> filters, MotechURLSecurityRule securityRule) {
    Map<RequestMatcher, Collection<ConfigAttribute>> requestMap = new LinkedHashMap<>();

    List<AccessDecisionVoter> voters = new ArrayList<>();
    Collection<ConfigAttribute> configAtts = new ArrayList<>();

    if (CollectionUtils.isEmpty(securityRule.getPermissionAccess()) && CollectionUtils.isEmpty(securityRule.getUserAccess())) {
        configAtts.add(new SecurityConfig("IS_AUTHENTICATED_FULLY"));
        AuthenticatedVoter authVoter = new AuthenticatedVoter();
        voters.add(authVoter);
    } else {
        if (!CollectionUtils.isEmpty(securityRule.getPermissionAccess())) {
            for (String permission : securityRule.getPermissionAccess()) {
                configAtts.add(new SecurityConfig(permission));
            }
        }
        if (!CollectionUtils.isEmpty(securityRule.getUserAccess())) {
            for (String userAccess : securityRule.getUserAccess()) {
                configAtts.add(new SecurityConfig(SecurityConfigConstants.USER_ACCESS_PREFIX + userAccess));
            }
        }
    }

    buildRequestMap(requestMap, configAtts, securityRule);

    FilterInvocationSecurityMetadataSource metadataSource = new DefaultFilterInvocationSecurityMetadataSource((LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>>) requestMap);

    FilterSecurityInterceptor interceptor = new FilterSecurityInterceptor();
    interceptor.setSecurityMetadataSource(metadataSource);

    RoleVoter roleVoter = new RoleVoter();

    roleVoter.setRolePrefix(SecurityConfigConstants.ROLE_ACCESS_PREFIX);
    voters.add(roleVoter);

    voters.add(new MotechAccessVoter());

    AccessDecisionManager decisionManager = new AffirmativeBased(voters);

    interceptor.setAccessDecisionManager(decisionManager);
    interceptor.setAuthenticationManager(authenticationManager);

    filters.add(interceptor);
}
 
开发者ID:motech,项目名称:motech,代码行数:45,代码来源:SecurityRuleBuilder.java

示例11: getObject

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
@Override
public FilterInvocationSecurityMetadataSource getObject() {
	logger.info("###### DefaultFilterInvocationSecurityMetadataSource has changed. ######");
	return new DefaultFilterInvocationSecurityMetadataSource(buildRequestMap());

}
 
开发者ID:rockagen,项目名称:gnext,代码行数:7,代码来源:JdbcFilterInvocationSecurityMetadataSourceFactoryBean.java

示例12: createSecurityMetadataSource

import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; //导入依赖的package包/类
public static BeanDefinition createSecurityMetadataSource(Element element, ParserContext pc) {
  List<Element> filterPatterns = 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<BeanDefinition, BeanDefinition> invocationDefinitionMap = new ManagedMap<BeanDefinition, BeanDefinition>();

  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(path, method);
      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(matcher, attributeBuilder.getBeanDefinition());
      }
    }
  }

  BeanDefinitionBuilder fidsBuilder = BeanDefinitionBuilder.rootBeanDefinition(DefaultFilterInvocationSecurityMetadataSource.class);
  fidsBuilder.addConstructorArgValue(invocationDefinitionMap);
  fidsBuilder.getRawBeanDefinition().setSource(pc.extractSource(element));

  return fidsBuilder.getBeanDefinition();
}
 
开发者ID:jungyang,项目名称:oauth-client-master,代码行数:57,代码来源:ConfigUtils.java


注:本文中的org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。