summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/get_url/tasks/use_netrc.yml
blob: e1852a81392394d4d5aef1ac212bf7f1b66523ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
- name: Write out netrc
  copy:
    dest: "{{ remote_tmp_dir }}/netrc"
    content: |
      machine {{ httpbin_host }}
      login foo
      password bar

- name: Test Bearer authorization is failed with netrc
  get_url:
    url: https://{{ httpbin_host }}/bearer
    headers:
      Authorization: Bearer foobar
    dest: "{{ remote_tmp_dir }}/msg.txt"
  ignore_errors: yes
  environment:
    NETRC: "{{ remote_tmp_dir }}/netrc"

- name: Read msg.txt file
  ansible.builtin.slurp:
    src: "{{ remote_tmp_dir }}/msg.txt"
  register: response_failed

- name: Parse token from msg.txt
  set_fact: 
    token: "{{ (response_failed['content'] | b64decode | from_json).token }}"

- name: assert Test Bearer authorization is failed with netrc
  assert:
    that:
    - "token.find('v=' ~ 'Zm9vOmJhcg') == -1"
    fail_msg: "Was expecting 'foo:bar' in base64, but received: {{ response_failed['content'] | b64decode | from_json }}"
    success_msg: "Expected Basic authentication even Bearer headers were sent"

- name: Test Bearer authorization is successfull with use_netrc=False
  get_url:
    url: https://{{ httpbin_host }}/bearer
    use_netrc: false
    headers:
      Authorization: Bearer foobar
    dest: "{{ remote_tmp_dir }}/msg.txt"
  environment:
    NETRC: "{{ remote_tmp_dir }}/netrc"

- name: Read msg.txt file
  ansible.builtin.slurp:
    src: "{{ remote_tmp_dir }}/msg.txt"
  register: response

- name: Parse token from msg.txt
  set_fact: 
    token: "{{ (response['content'] | b64decode | from_json).token }}"

- name: assert Test Bearer authorization is successfull with use_netrc=False
  assert:
    that:
    - "token.find('v=' ~ 'foobar') == -1"
    fail_msg: "Was expecting Bearer token 'foobar', but received: {{ response['content'] | b64decode | from_json }}"
    success_msg: "Bearer authentication successfull without netrc"

- name: Clean up
  file:
    path: "{{ item }}"
    state: absent
  with_items:
    - "{{ remote_tmp_dir }}/netrc"
    - "{{ remote_tmp_dir }}/msg.txt"