`maven_artifact` uses httplib2 that attempts anonymous access even if user/password is provided.

So access log looks like:

```
/opt/bitnami/apps/artifactory/artifactory_home/logs/request.log:

20191108102644|3|REQUEST|188.163.xxx.xxx|non_authenticated_user|GET|/libs-snapshot-local/xxx/2.14.0-SNAPSHOT/maven-metadata.xml|HTTP/1.1|401|0
20191108102644|2|REQUEST|188.163.xxx.xxx|reader|GET|/libs-snapshot-local/xxx/2.14.0-SNAPSHOT/maven-metadata.xml|HTTP/1.1|200|792
```

Our repository Artifactory blocks access (per IP??) if too many 401 happens.

Ansible then fails with:

```
failed: [stage-server] (item={'name': 'tp-sc', 'jmx_port': 18004}) => {"ansible_loop_var": "item", "changed": false,
  "msg": "Failed to connect to example.com at port 443: [Errno 110] Connection timed out",
  "status": -1,
  "url": "https://example.com/artifactory/libs-snapshot-local/xxx/2.14.0-SNAPSHOT/server-2.14.0-20191108.084713-5.jar.md5"}
```

There is a patch that fixes the behavior of httplib2 : https://github.com/DorianGeraut/maven_artifact_work/commit/5fff2870ba1e8dee864b21eb3a2ea40c10547484

),
        add_file_common_args=True,
        mutually_exclusive=([('version', 'version_by_spec')])
    )
    if not HAS_LXML_ETREE:
        module.fail_json(msg=missing_required_lib('lxml'), exception=LXML_ETREE_IMP_ERR)
    if module.params['version_by_spec'] and not HAS_SEMANTIC_VERSION:
        module.fail_json(msg=missing_required_lib('semantic_version'), exception=SEMANTIC_VERSION_IMP_ERR)
    repository_url = module.params["repository_url"]
    if not repository_url:
        repository_url = "http://repo1.maven.org/maven2"
    try:
        parsed_url = urlparse(repository_url)
    except AttributeError as e:
        module.fail_json(msg='url parsing went wrong %s' % e)
    local = parsed_url.scheme == "file"
    if parsed_url.scheme == 's3' and not HAS_BOTO:
        module.fail_json(msg=missing_required_lib('boto3', reason='when using s3:// repository URLs'),
                         exception=BOTO_IMP_ERR)
    group_id = module.params["group_id"]
    artifact_id = module.params["artifact_id"]
    version = module.params["version"]
    version_by_spec = module.params["version_by_spec"]
    classifier = module.params["classifier"]
    extension = module.params["extension"]
    headers = module.params['headers']
    state = module.params["state"]
    dest = module.params["dest"]
    b_dest = to_bytes(dest, errors='surrogate_or_strict')
    keep_name = module.params["keep_name"]