##### SUMMARY
uri module set string with masked content into content and json output

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
uri

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.0
  config file = None
  configured module search path = ['/Users/hungluong/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/hungluong/Library/Python/3.7/lib/python/site-packages/ansible
  executable location = /Users/hungluong/Library/Python/3.7/bin/ansible
  python version = 3.7.6 (default, Dec 30 2019, 19:38:26) [Clang 11.0.0 (clang-1100.0.33.16)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
N/A
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
- hosts: localhost
  connection: local
  tasks:
    - name: send request
      uri:
        url: "https://postman-echo.com/get?name=something-with-admin"
        user: admin
        password: admin
        method: GET
        force_basic_auth: yes
        return_content: yes
        status_code: 200
      register: response
    
    - name: extract value
      vars:
        query: args.name
      set_fact:
        value_content: "{{ response.content }}"
        value_content_parsed: "{{ response.content | from_json | json_query(query) }}"
        value_json: "{{ response.json.args.name }}"

    - name: debug
      debug:
        msg:
          - "{{ 'something-with-admin' in value_json }}"
          - "{{ 'something-with-admin' in value_content }}"
          - "{{ 'something-with-admin' in value_content_parsed }}"
          - "{{ 'something-with-********' in value_json }}"
          - "{{ 'something-with-********' in value_content }}"
          - "{{ 'something-with-********' in value_content_parsed }}"
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
The module should return the json/content value with the correct values


##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
The module seems to apply sensitive info masking ('********') to value matching username/password in its output

<!--- Paste verbatim command output between quotes -->
```paste below
"msg": [
        false,
        false,
        false,
        true,
        false,
        true
    ]
```

raise ValueError("bad symbolic permission for mode: %s" % mode)
            
            
            for idx, perms in enumerate(permlist):
                
                if PERMS_RE.match(perms):
                    raise ValueError("bad symbolic permission for mode: %s" % mode)
                for user in users:
                    mode_to_apply = cls._get_octal_mode_from_symbolic_perms(path_stat, user, perms, use_umask)
                    new_mode = cls._apply_operation_to_mode(user, opers[idx], mode_to_apply, new_mode)
        return new_mode
    @staticmethod
    def _apply_operation_to_mode(user, operator, mode_to_apply, current_mode):
        if operator == '=':
            if user == 'u':
                mask = stat.S_IRWXU | stat.S_ISUID
            elif user == 'g':
                mask = stat.S_IRWXG | stat.S_ISGID
            elif user == 'o':
                mask = stat.S_IRWXO | stat.S_ISVTX
            
            inverse_mask = mask ^ PERM_BITS
            new_mode = (current_mode & inverse_mask) | mode_to_apply
        elif operator == '+':
            new_mode = current_mode | mode_to_apply
        elif operator == '-':
            new_mode = current_mode - (current_mode & mode_to_apply)
        return new_mode
    @staticmethod
    def _get_octal_mode_from_symbolic_perms(path_stat, user, perms, use_umask):