@Override
	public boolean decide(UserDetails userDetails, Object object, List<Metadata> metadatas) throws SecurityRuntimeException {
		for(AccessDecisionVoter voter : decisionVoters) {
			boolean pass = true;
			for(Metadata m : metadatas) {
				if(voter.vote(userDetails, object, m.getPrivileges(), m.getRelation()) != AccessDecisionVoter.ACCESS_GRANTED) {
					pass =  false;
					break;
				}
			}
			if(!pass) {
				return false;
			}
		}
		return true;
	}