KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > security > test > NamespacePermission


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.test.security.test;
23
24 import java.security.BasicPermission JavaDoc;
25 import java.security.Permission JavaDoc;
26 import java.security.PermissionCollection JavaDoc;
27 import javax.naming.Name JavaDoc;
28
29 /** A path like heirarchical permission.
30
31 @author Scott.Stark@jboss.org
32 @version $Revision: 37406 $
33 */

34 public class NamespacePermission extends BasicPermission JavaDoc
35 {
36     private PermissionName fullName;
37     private String JavaDoc actions;
38
39     /** Creates new NamespacePermission */
40     public NamespacePermission(String JavaDoc name, String JavaDoc actions)
41     {
42         super(name, actions);
43         this.actions = actions;
44         fullName = new PermissionName(name);
45     }
46     public NamespacePermission(Name JavaDoc name, String JavaDoc actions)
47     {
48         super(name.toString(), actions);
49         this.actions = actions;
50         fullName = new PermissionName(name);
51     }
52
53     public String JavaDoc getActions()
54     {
55         return actions;
56     }
57
58     public PermissionName getFullName()
59     {
60         return fullName;
61     }
62
63     public boolean implies(Permission JavaDoc p)
64     {
65         String JavaDoc pactions = p.getActions();
66         boolean implied = true;
67         for(int n = 0; n < actions.length(); n ++)
68         {
69             char a = actions.charAt(n);
70             char pa = pactions.charAt(n);
71             if( (a != '-' && pa != '-' && pa != a) )
72             {
73                 implied = false;
74                 break;
75             }
76             else if( a == '-' && pa != '-' )
77             {
78                 implied = false;
79                 break;
80             }
81         }
82         return implied;
83     }
84
85     public PermissionCollection JavaDoc newPermissionCollection()
86     {
87         return new NamespacePermissionCollection();
88     }
89 }
90
Popular Tags