/**
   * Creates an instance of the <code>StorageCredentialsSharedAccessSignature</code> class using the
   * specified shared access signature token.
   *
   * @param token A <code>String</code> that represents shared access signature token.
   */
  public StorageCredentialsSharedAccessSignature(final String token) {
    this.token = token;

    if (token == null) {
      this.setHttpsOnly(false);
    } else {
      try {
        Map<String, String[]> queryParams = PathUtility.parseQueryString(token);
        final String[] protocols = queryParams.get(Constants.QueryConstants.SIGNED_PROTOCOLS);
        this.setHttpsOnly((protocols != null) && Constants.HTTPS.equals(protocols[0]));
      } catch (StorageException e) {
        this.setHttpsOnly(false);
      }
    }
  }