KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > core > security > RoleDomainCombiner


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.test.core.security;
10
11 import java.security.DomainCombiner JavaDoc;
12 import java.security.Principal JavaDoc;
13 import java.security.ProtectionDomain JavaDoc;
14
15 /**
16  * Combines the stack with principals.
17  *
18  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
19  * @version $Revision: 1.1 $
20  */

21 public class RoleDomainCombiner implements DomainCombiner JavaDoc
22 {
23
24    private Principal JavaDoc[] principals;
25
26    public RoleDomainCombiner(Principal JavaDoc[] principals)
27    {
28       this.principals = principals;
29    }
30
31    public ProtectionDomain JavaDoc[] combine(ProtectionDomain JavaDoc[] currentDomains, ProtectionDomain JavaDoc[] assignedDomains)
32    {
33       ProtectionDomain JavaDoc source = null;
34       if (currentDomains.length == 0)
35       {
36          throw new Error JavaDoc("Not possible");
37       }
38       else if (currentDomains.length == 1)
39       {
40
41          source = currentDomains[0];
42       }
43       else
44       {
45          source = currentDomains[1];
46       }
47       ProtectionDomain JavaDoc[] result = new ProtectionDomain JavaDoc[]
48       {
49          new ProtectionDomain JavaDoc(source.getCodeSource(),
50                               source.getPermissions(),
51                               source.getClassLoader(),
52                               principals)
53       };
54       return result;
55    }
56 }
57
Popular Tags