1 /*
2 * Copyright (C) The Spice Group. All rights reserved.
3 *
4 * This software is published under the terms of the Spice
5 * Software License version 1.1, a copy of which has been included
6 * with this distribution in the LICENSE.txt file.
7 */
8 package org.codehaus.spice.xmlpolicy.runtime;
9
10 import java.security.CodeSource;
11 import java.security.Permission;
12 import java.security.Permissions;
13 import java.util.Iterator;
14 import java.util.Map;
15
16 /***
17 * A policy implementation that accepts policys details from a map.
18 * The map is between a codebase and a array of permissions.
19 * Note that it was a deliberate decision to limit the time at which you can
20 * specify policy data for security reasons.
21 *
22 * @author Peter Donald
23 */
24 public class DefaultPolicy
25 extends AbstractPolicy
26 {
27 /***
28 * Create a Policy that applies specified grants.
29 * Each entry in map maps a CodeSource to an array
30 * of Permissions.
31 *
32 * @param grants the grant map
33 * @throws Exception if unable to construct Policy
34 */
35 public DefaultPolicy( final Map grants )
36 throws Exception
37 {
38 processGrants( grants );
39 }
40
41 /***
42 * Create a policy with zero entrys.
43 * Sub-classes usually use this constructor then
44 * invoke processGrants separately.
45 */
46 public DefaultPolicy()
47 {
48 }
49
50 /***
51 * Process map of grants and configure Policy appropriately.
52 *
53 * @param grants the grants map
54 * @throws Exception if unable to perform configuration
55 */
56 protected final void processGrants( final Map grants )
57 throws Exception
58 {
59 final Iterator iterator = grants.keySet().iterator();
60 while( iterator.hasNext() )
61 {
62 final CodeSource codeSource = (CodeSource)iterator.next();
63 final Permission[] permissions = (Permission[])grants.get( codeSource );
64 final Permissions permissionSet = createPermissionSetFor( codeSource );
65
66 for( int i = 0; i < permissions.length; i++ )
67 {
68 final Permission permission = permissions[ i ];
69 permissionSet.add( permission );
70 }
71 }
72 }
73 }
This page was automatically generated by Maven