1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity;
17
18 import java.util.Iterator;
19
20
21 /***
22 * Grants access if the user holds any of the authorities listed in the
23 * configuration attributes starting with "MOCK_".
24 *
25 * @author Ben Alex
26 * @version $Id: MockAccessDecisionManager.java,v 1.3 2005/11/17 00:55:47 benalex Exp $
27 */
28 public class MockAccessDecisionManager implements AccessDecisionManager {
29
30
31 public void decide(Authentication authentication, Object object,
32 ConfigAttributeDefinition config) throws AccessDeniedException {
33 Iterator iter = config.getConfigAttributes();
34
35 while (iter.hasNext()) {
36 ConfigAttribute attr = (ConfigAttribute) iter.next();
37
38 if (this.supports(attr)) {
39 for (int i = 0; i < authentication.getAuthorities().length;
40 i++) {
41 if (attr.getAttribute().equals(authentication
42 .getAuthorities()[i].getAuthority())) {
43 return;
44 }
45 }
46 }
47 }
48
49 throw new AccessDeniedException("Didn't hold required authority");
50 }
51
52 public boolean supports(ConfigAttribute attribute) {
53 if (attribute.getAttribute().startsWith("MOCK_")) {
54 return true;
55 } else {
56 return false;
57 }
58 }
59
60 public boolean supports(Class clazz) {
61 return true;
62 }
63 }