Migrating ACL implementation to JDK1.2 Security Architecture

Paul E. Andrighetti (paul.andrighetti@Central)
Thu, 09 Oct 1997 10:55:53 -0600

Date: Thu, 09 Oct 1997 10:55:53 -0600
From: "Paul E. Andrighetti" <paul.andrighetti@Central>
To: java-security <java-security@web2.javasoft.com>
Subject: Migrating ACL implementation to JDK1.2 Security Architecture

I have some questions about how I would migrate an application away
from the java.security.acl package and make exclusive use of the JDK1.2
security architecture.

The java-security mail archives have a fair amount of discussion that
this is doable in JDK1.2, but no specifics are every mentioned.

If for example, I had a java.security.acl implementation that performed
the following function:

"The ACL mechanism will allow anyone who is a member of the group ADMINS
access to the file PASSWORDS. The user will identify themselves to the
system by presenting a user id and password."

In ACL land I would construct a java.security.acl.Acl object that
guarded the file PASSWORDS. The Acl would have AclEntries
(java.security.acl.AclEntry) that allow the
java.security.acl.Premissions of read and write for anyone who belonged
to the java.security.acl.Group ADMINS. Once the user authenticated
themselves to the system I would simply check the ACL to see if said
user was allowed access to the file. (A bunch of details are obviously
missing)

I would like to rewrite this, without using the java.security.acl
package. How the user identifies themselves to the system is not of
prime concern here.

My questions revolve around what security mechanisms/classes I will need
to make use of.

QUESTION 1:
JDK1.2 security mechanism uses digital signatures to ensure
authenticity. How then does a user of an application identify
themselves to the system so the AccessController will correctly apply
the checkPermission() method in the context of the user using the system
and not solely based on who signed the class files?

I am unclear if 1) the GuardedObject will give my this capability, 2) if
I need the "`running-on-behalf' of a principal" future enhancement
alluded to in Li Gong's doc, rev 0.6, section 7.6, or 3) is there
something else that I am missing.

QUESTION 2:
How do I associated a group of users to a specific group?

Can I simply associate a group of user certificate's to a common alias
using keytool. Then this common alias is then referenced in the policy
file.

Thanks in Advance,

-- 
     ______
    /_____/\      Paul E. Andrighetti
   /____ \\ \     Member Technical Staff
  /_____\ \\ /    SES Product Engineering 
 /_____/ \/ / /          
/_____/ /   \//\  Sun Microsystems, Inc.
\_____\//\   / /  295 Interlocken Blvd.
 \_____/ / /\ /   Broomfield, CO 80021
  \_____/ \\ \    Phone 303.272.7605/x27605
   \_____\ \\   
    \_____\/      Paul.Andrighetti@Central.Sun.COM