Sample Code 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