### Apache Airflow Provider(s)

http

### Versions of Apache Airflow Providers

apache-airflow-providers-http==4.1.1

### Apache Airflow version

2.5.0

### Operating System

Ubuntu 20.04.5 LTS (Focal Fossa)"

### Deployment

Virtualenv installation

### Deployment details

Reproduced on a local deployment inside WSL on virtualenv - not related to specific deployment. 

### What happened

SimpleHttpOperator supports passing in auth_type. Hovewer, [this auth_type is only initialized if login is provided](https://github.com/astronomer/airflow-provider-sample/blob/main/sample_provider/hooks/sample_hook.py#L64-L65).

In our setup we are using the Kerberos authentication. This authentication relies on kerberos sidecar with keytab, and not on user-password pair in the connection string. However, this would also be issue with any other implementation not relying on username passed in the connection string.

We were trying to use some other auth providers from (`HTTPSPNEGOAuth` from [requests_gssapi](https://pypi.org/project/requests-gssapi/) and `HTTPKerberosAuth` from [requests_kerberos](https://pypi.org/project/requests-kerberos/)). We noticed that requests_kerberos is used in Airflow in some other places for Kerberos support, hence we have settled on the latter.



### What you think should happen instead

A suggestion is to initialize the passed `auth_type` also if no login is present.

### How to reproduce

A branch demonstrating possible fix:
https://github.com/apache/airflow/commit/7d341f081f0160ed102c06b9719582cb463b538c

### Anything else

The linked branch is a quick-and-dirty solution, but maybe the code could be refactored in another way? Support for **kwargs could also be useful, but I wanted to make as minimal changes as possible.

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

body["driverMemory"] = driver_memory
        if driver_cores:
            body["driverCores"] = driver_cores
        if executor_memory and LivyHook._validate_size_format(executor_memory):
            body["executorMemory"] = executor_memory
        if executor_cores:
            body["executorCores"] = executor_cores
        if num_executors:
            body["numExecutors"] = num_executors
        if archives and LivyHook._validate_list_of_stringables(archives):
            body["archives"] = archives
        if queue:
            body["queue"] = queue
        if name:
            body["name"] = name
        if conf and LivyHook._validate_extra_conf(conf):
            body["conf"] = conf
        return body
    @staticmethod
    def _validate_size_format(size: str) -> bool:
        """
        Validate size format.
        :param size: size value
        :return: true if valid format
        """
        if size and not (isinstance(size, str) and re.match(r"^\d+[kmgt]b?$", size, re.IGNORECASE)):
            raise ValueError(f"Invalid java size format for string'{size}'")
        return True
    @staticmethod
    def _validate_list_of_stringables(vals: Sequence[str | int | float]) -> bool: