Sample Code: Checking Authorization
// This example illustrates how to check authorizations
// for a service that supports read and write authorizations
public static final String AUTH_MYSERVICE_WRITE = "solaris.admin.myservice.write";
public static final String AUTH_MYSERVICE_READ = "solaris.admin.myservice.read";
PermissionCollection permissionCollection = null;
ToolInfrastructure infrastructure = <gotten from SMC>;
// Get authorizations.
try {
Authorization auth = (Authorization)infrastructure.getServiceByName(
ServiceList.AUTHORIZATION);
permissionCollection = auth.readUserPermissions(
infrastructure.getIdentity());
} catch (Exception ex) {
// Report exception
}
...
/**
* Determine if user is authorized for "write" access.
*
* @return true if user has write authorization, otherwise false
*/
public boolean hasWriteAuthorization() {
// Allow only if explicitly authorized.
//
VPermission perm = new VPermission(AUTH_MYSERVICE_WRITE);
if ((permissionCollection != null)
&& permissionCollection.implies(perm))
return true;
// Otherwise, deny
return false;
} // hasWriteAuthorization
/**
* Determine if user is authorized for "read" access.
*
* @return true if user has read authorization, otherwise false
*/
public boolean hasReadAuthorization() {
// Allow only if explicitly authorized.
//
VPermission perm = new VPermission(AUTH_MYSERVICE_READ);
if ((permissionCollection != null)
&& permissionCollection.implies(perm))
return true;
// Otherwise, deny
return false;
} // hasReadAuthorization