Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
  * JBoss, Home of Professional Open Source
  * Copyright 2005, JBoss Inc., and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as
  * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */
 package org.jboss.security;
  
 import java.util.Set;
 

Author(s):
Scott.Stark@jboss.org
Version:
$Revision: 68965 $
 
 public class AuthorizationInfo
 {
     private static Set<PrincipalemptySet = new HashSet<Principal>();
     private ArrayList<PolicyEntrypolicyMap = new ArrayList<PolicyEntry>(); 

    
An inner class that represents a grant entry in policyMap. It is composed of a CodeSource and an array of Prinicpals along with the granted permissions.
 
     static class PolicyEntry
     {
         private CodeSource cs;
         private Principal[] principals;
         private ArrayList<Permissionpermissions;
 
         PolicyEntry(CodeSource csPrincipal[] principalsArrayList<Permissionpermissions)
         {
             this. = cs;
             this. = principals;
             this. = permissions;
         }
 
         public void getPermissions(PermissionCollection perms)
         {
             int length =  == null ? 0 : .size();
             for(int n = 0; n < lengthn ++)
             {
                 Permission permission = (Permission.get(n);
                 perms.add(permission);
             }
         }
 
         public boolean implies(CodeSource codesrcSet<PrincipalsubjectPrincipals)
         {
             boolean implies = false;
             // Check codesources
             ifthis. == codesrc )
             {   // Both null or the same object
                 implies = true;
             }
             else ifthis. != null && codesrc != null && this..implies(codesrc) )
             {
                 implies = true;
             }
 
             // Check Principals
             ifimplies == true )
             {
                 ifthis. != null )
                 {   // Every one of our principals must be in subjectPrincipals
                     for(int p = 0; p < this..lengthp ++)
                     {
                         ifsubjectPrincipals.contains(this.[p]) == false )
                         {
                             implies = false;
                             break;
                         }
                     }
                 }
             }
            return implies;
        }
        public boolean equals(Object obj)
        {
            PolicyEntry key = (PolicyEntryobj;
            boolean equals = this. == key.cs;
            ifequals == false )
            {
                ifthis. != null && key.cs != null )
                    equals = this..equals(key.cs);
                ifequals == true )
                {   // Every principal in this must equal 
                    ifthis. != null && key.principals != null && this..length == key.principals.length )
                    {
                        for(int p = 0; p < this..lengthp ++)
                        {
                            ifthis.[p].equals(key.principals[p]) == false )
                            {
                                equals = false;
                                break;
                            }
                        }
                    }
                    else ifthis. != null || key.principals != null )
                    {
                        equals = false;
                    }
                }
            }
            return equals;
        }
        public int hashCode()
        {
            int hashCode = 0;
            if != null )
                hashCode = .hashCode();
            int length = (this. == null ? 0 : this..length);
            for(int p = 0; p < lengthp ++)
            {
                hashCode += this.[p].hashCode();
            }
            return hashCode;
        }
        public String toString()
        {
            StringBuffer buffer = new StringBuffer();
            buffer.append("cs=");
            buffer.append();
            buffer.append("; principals=");
            for(int p = 0;  != null && p < .p ++)
                buffer.append([p]);
            buffer.append("; permissions=");
            buffer.append();
            return buffer.toString();
        }
    }
    public AuthorizationInfo()
    {
    }
	public PermissionCollection getPermissions(Subject subjectCodeSource codesource)
	{
        Set<PrincipalsubjectPrincipals = ;
        ifsubject != null )
            subjectPrincipals = subject.getPrincipals();
        for(int n = 0; n < .size(); n ++)
        {
            PolicyEntry entry = (PolicyEntry.get(n);
            ifentry.implies(codesourcesubjectPrincipals) == true )
                entry.getPermissions(perms);
        }
		return perms;
	}
    public String toString()
    {
        StringBuffer buffer = new StringBuffer("permissions:");
        return buffer.toString();
    }
    public void grant(CodeSource csArrayList<Permissionpermissions)
    {
        grant(cspermissionsnull);
    }
    public void grant(CodeSource csArrayList<PermissionpermissionsPrincipal[] principals)
    {
        PolicyEntry entry = new PolicyEntry(csprincipalspermissions);
        .add(entry);
    }
New to GrepCode? Check out our FAQ X