This package provides support for authenticating user and administrator accounts.

Users and administrators are authenticated based on a password and access level combination. There are currently 3 access levels recoginzed:

All files in stored in Accounts directory on the provisioning server are considered to have USER access level only. Files in Admin_Accounts may have either ADMINISTRATOR or TECHNICIAN access or both, as specified by the tags found in the account file.

User acces means that owners of these accounts may only view and modify their own account data. They are only able to log in through the UserLogin

Accounts with TECHNICIAN access are able to log in through the AdmistrativeLogin to modify the server configuration data. Accounts with ADMINISTRATOR access also log in through AdministrativeLogin and have the ability to see all USER accounts in the system and modify their configurations, including both fields which the end USER may modify an others whiche are only accessible to the ADMINISTRATOR.

The PasswordManager class is called by the gui to verify whether the password access level entered by the user are valid. The remaining classes in this package provide a separate gui which may be used to manage (create/delete/modify) administrative accounts. Note that to change a password for a user, you must use the main gui.

The password is stored in each account file as an md5 hash (as implemented by the java.security.MessageDigest). To verify the password, the entire account file (identified by the login name) is retrieved from the server, the hash of the supplied password is computed and then compared to the hash retrieved from the file.

Note that if USER access is requested, and the supplied login id does not exist as a master account file, the PasswordManager will also check whether the given id exists as an alias. If it is an alias, the PasswordManager will automatically retrieve the master account for that alias and attempt to log in the master account with the supplied password.

This package also provides the classes provide a user interface which allows new ADMINISTRATOR and TECHNICIAN accounts to be created on the provisioning server. These classes are AdminAcctManager, (which parses command line arguments and allows the account manager to run as either an application or applet) AdminAcctManagerPanel (which displays a table of all the accounts and their access types) and CreateAdminAccountPanel (which allows accounts to be created or edited).