zoukankan      html  css  js  c++  java
  • spring security默认访问权限判定源码

    AffirmativeBased

    org.springframework.security.access.vote.AffirmativeBased

    public class AffirmativeBased extends AbstractAccessDecisionManager {
    	/**
    	 * @param authentication 调用方认证信息
    	 * @param object 被调用的收保护的对象(方法)
    	 * @param configAttributes 对象相关的访问控制配置属性
    	 *
    	 * @throws AccessDeniedException 拒绝访问时抛出此异常
    	 */
    	public void decide(Authentication authentication, Object object,
    			Collection<ConfigAttribute> configAttributes) throws AccessDeniedException {
    		int deny = 0;
    
    		for (AccessDecisionVoter voter : getDecisionVoters()) {
    			int result = voter.vote(authentication, object, configAttributes);
    
    			if (logger.isDebugEnabled()) {
    				logger.debug("Voter: " + voter + ", returned: " + result);
    			}
    
    			switch (result) {
    			case AccessDecisionVoter.ACCESS_GRANTED:
    				return;
    
    			case AccessDecisionVoter.ACCESS_DENIED:
    				deny++;
    
    				break;
    
    			default:
    				break;
    			}
    		}
    
    		if (deny > 0) {
    			throw new AccessDeniedException(messages.getMessage(
    					"AbstractAccessDecisionManager.accessDenied", "Access is denied"));
    		}
    
    		checkAllowIfAllAbstainDecisions();
    	}
    }
    
  • 相关阅读:
    win32
    win32
    win32
    win32
    C++ 指针的错误释放
    交换两个数不引入第三个变量
    交换两个数不引入第三个变量
    hdu3986 spfa + 枚举最短路上的边
    hdu3986 spfa + 枚举最短路上的边
    hdu2433 spfa+mark[x][u][v]优化
  • 原文地址:https://www.cnblogs.com/luguojun/p/14294699.html
Copyright © 2011-2022 走看看