code: public String generateSharedAccessSignature(
              final SharedAccessFilePolicy policy, final SharedAccessFileHeaders headers, final String groupPolicyIdentifier)
              throws InvalidKeyException, StorageException {
  
          return this.generateSharedAccessSignature(policy, headers, groupPolicyIdentifier,
                  null /* IP range */, null /* protocols */);
      }
docs: Returns a shared access signature for the file using the specified group policy identifier and
  shared access file headers. Note this does not contain the leading "?".
  
  @param policy
  A <code>{@link SharedAccessFilePolicy}</code> object that represents the access policy for the shared
  access signature.
  @param headers
  A <code>{@link SharedAccessFileHeaders}</code> object that represents the optional header values to
  set for a file accessed with this shared access signature.
  @param groupPolicyIdentifier
  A <code>String</code> that represents the share-level access policy.
  
  @return A <code>String</code> that represents the shared access signature.
  
  @throws IllegalArgumentException
  If the credentials are invalid.
  @throws InvalidKeyException
  If the credentials are invalid.
  @throws StorageException
  If a storage service error occurred.