1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.vote;
17
18 import org.acegisecurity.Authentication;
19 import org.acegisecurity.ConfigAttribute;
20 import org.acegisecurity.ConfigAttributeDefinition;
21
22 import java.util.Iterator;
23
24
25 /***
26 * Implementation of an {@link AccessDecisionVoter} for unit testing.
27 *
28 * <p>
29 * If the {@link ConfigAttribute#getAttribute()} has a value of
30 * <code>DENY_FOR_SURE</code>, the voter will vote to deny access.
31 * </p>
32 *
33 * <p>
34 * All comparisons are case sensitive.
35 * </p>
36 *
37 * @author Ben Alex
38 * @version $Id: DenyVoter.java,v 1.3 2005/11/17 00:55:48 benalex Exp $
39 */
40 public class DenyVoter implements AccessDecisionVoter {
41
42
43 public boolean supports(ConfigAttribute attribute) {
44 if ("DENY_FOR_SURE".equals(attribute.getAttribute())) {
45 return true;
46 } else {
47 return false;
48 }
49 }
50
51 public boolean supports(Class clazz) {
52 return true;
53 }
54
55 public int vote(Authentication authentication, Object object,
56 ConfigAttributeDefinition config) {
57 Iterator iter = config.getConfigAttributes();
58
59 while (iter.hasNext()) {
60 ConfigAttribute attribute = (ConfigAttribute) iter.next();
61
62 if (this.supports(attribute)) {
63 return ACCESS_DENIED;
64 }
65 }
66
67 return ACCESS_ABSTAIN;
68 }
69 }