UrlAccessDecisionManager.java 文件源码

java
阅读 28 收藏 0 点赞 0 评论 0

项目:bdf2 作者:
@SuppressWarnings("unchecked")
public void decide(Authentication authentication, Object object,Collection<ConfigAttribute> configAttributes)throws AccessDeniedException, InsufficientAuthenticationException {
    if((authentication.getPrincipal() instanceof IUser)){
        IUser loginUser=(IUser)authentication.getPrincipal();
        if(loginUser.isAdministrator())return;          
    }
    int result=10;
    for (AccessDecisionVoter<Object> voter : getDecisionVoters()) {
        result = voter.vote(authentication, object, configAttributes);
        if(result==AccessDecisionVoter.ACCESS_ABSTAIN){
            continue;
        }
        if(result==AccessDecisionVoter.ACCESS_DENIED){
            throw new AccessDeniedException("Access is denied");
        }
        if(result==AccessDecisionVoter.ACCESS_GRANTED){
            break;
        }
    }
    if(result==AccessDecisionVoter.ACCESS_ABSTAIN && configAttributes.size()>0){
        throw new AccessDeniedException("Access is denied");
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号