Merge branch 'fetaure/3-add-ci-gitlab-runner' into 'master'

WIP: Resolve "add CI ( gitlab-runner )"

Closes #3

See merge request spaceti-app/integrations/acs/colnod-connector!4
This commit is contained in:
Filip Bucek 2019-10-07 11:23:55 +00:00
commit 54b863adab
31 changed files with 1929 additions and 758 deletions

3
.gitignore vendored
View File

@ -35,6 +35,9 @@ Thumbs.db
/.qmake.cache /.qmake.cache
/.qmake.stash /.qmake.stash
# build directory
build
# qtcreator generated files # qtcreator generated files
*.pro.user* *.pro.user*

32
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,32 @@
# for
stages:
- build
- test
# ########
# Build
##########
build: # name of task
stage: build # in what stage it will run ( 1. build then test etc )
tags: # Tags are used to choose correct gitlab-runner
- hw # spaceti-runner server has running runners and one has tag 'hw'
script: # run in bash
- mkdir -p build
- cd build
- qmake ../colnod-connector.pro
- make -j8
cache:
paths:
- build/
# ########
# Test
##########
test: # name of task
stage: test # in what stage it will run ( 1. build then test etc )
tags: # Tags are used to choose correct gitlab-runner
- hw # spaceti-runner server has running runners and one has tag 'hw'
script: # run in bash
- cd build
- make check test

View File

@ -1,240 +1,240 @@
_type: export _type: export
__export_format: 4 __export_format: 4
__export_date: 2019-10-01T14:13:03.279Z __export_date: 2019-10-01T14:13:03.279Z
__export_source: insomnia.desktop.app:v6.6.2 __export_source: insomnia.desktop.app:v6.6.2
resources: resources:
- _id: req_f0797b6411b144f0bf0a40d9300ee92f - _id: req_f0797b6411b144f0bf0a40d9300ee92f
authentication: authentication:
disabled: false disabled: false
password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0 password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0
type: basic type: basic
username: spaceti username: spaceti
body: body:
mimeType: application/json mimeType: application/json
text: >- text: >-
{ {
"username": "spaceti", "username": "spaceti",
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" "password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"
} }
created: 1569905755136 created: 1569905755136
description: "" description: ""
headers: headers:
- id: pair_061d15d1294e412caca8300559541695 - id: pair_061d15d1294e412caca8300559541695
name: content-type name: content-type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755136 metaSortKey: -1569905755136
method: POST method: POST
modified: 1569934518963 modified: 1569934518963
name: Login user name: Login user
parameters: [] parameters: []
parentId: fld_9ef1d96e0e6d40ef9094250114269496 parentId: fld_9ef1d96e0e6d40ef9094250114269496
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/AaaManager/authSession" url: "{{ base_url }}/AaaManager/authSession"
_type: request _type: request
- _id: fld_9ef1d96e0e6d40ef9094250114269496 - _id: fld_9ef1d96e0e6d40ef9094250114269496
created: 1569905755142 created: 1569905755142
description: Login information ( token ) description: Login information ( token )
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755142 metaSortKey: -1569905755142
modified: 1569905755142 modified: 1569905755142
name: login name: login
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: wrk_43652e59afaf4825a8bbbf31e346f616 - _id: wrk_43652e59afaf4825a8bbbf31e346f616
created: 1569905755149 created: 1569905755149
description: "Colnod system: [Product information](http://produkty.colsys.cz/colnod) description: "Colnod system: [Product information](http://produkty.colsys.cz/colnod)
Jira issues: [Communicaiton with Jira issues: [Communicaiton with
Colnod](https://spaceti.atlassian.net/secure/RapidBoard.jspa?rapidView=78\ Colnod](https://spaceti.atlassian.net/secure/RapidBoard.jspa?rapidView=78\
&projectKey=INT&modal=detail&selectedIssue=INT-3563)" &projectKey=INT&modal=detail&selectedIssue=INT-3563)"
modified: 1569905755149 modified: 1569905755149
name: Colnod server 1.0.0 name: Colnod server 1.0.0
parentId: null parentId: null
_type: workspace _type: workspace
- _id: req_00f9f99d933c4638900385ffbbd4f8f7 - _id: req_00f9f99d933c4638900385ffbbd4f8f7
authentication: authentication:
disabled: false disabled: false
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}" 'b64::JC5pZA==::46b', 'never' %}"
type: bearer type: bearer
body: body:
mimeType: application/json mimeType: application/json
text: "" text: ""
created: 1569905755134 created: 1569905755134
description: "" description: ""
headers: headers:
- id: pair_a2a3c43a20f64efbb8a4752c7e983c8e - id: pair_a2a3c43a20f64efbb8a4752c7e983c8e
name: Content-Type name: Content-Type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755134 metaSortKey: -1569905755134
method: POST method: POST
modified: 1569937805044 modified: 1569937805044
name: Get subjects name: Get subjects
parameters: [] parameters: []
parentId: fld_2fb4c2cef1f44cff83d6b00fe0886384 parentId: fld_2fb4c2cef1f44cff83d6b00fe0886384
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/SubjectManager/getSubjects" url: "{{ base_url }}/SubjectManager/getSubjects"
_type: request _type: request
- _id: fld_2fb4c2cef1f44cff83d6b00fe0886384 - _id: fld_2fb4c2cef1f44cff83d6b00fe0886384
created: 1569905755140 created: 1569905755140
description: Operations about user description: Operations about user
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755140 metaSortKey: -1569905755140
modified: 1569905755140 modified: 1569905755140
name: user name: user
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: req_9e42a5023f9d4235a5de099cd7573d2b - _id: req_9e42a5023f9d4235a5de099cd7573d2b
authentication: authentication:
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}" 'b64::JC5pZA==::46b', 'never' %}"
type: bearer type: bearer
body: body:
mimeType: application/json mimeType: application/json
text: |- text: |-
{ {
"id": "1a23c502-1665-4492-94ea-039bb7505cae" "id": "1a23c502-1665-4492-94ea-039bb7505cae"
} }
created: 1569905755131 created: 1569905755131
description: "" description: ""
headers: headers:
- disabled: false - disabled: false
id: pair_e888b6c679d74b0988f0dd2d77690383 id: pair_e888b6c679d74b0988f0dd2d77690383
name: Content-Type name: Content-Type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755131 metaSortKey: -1569905755131
method: POST method: POST
modified: 1569939013152 modified: 1569939013152
name: Get Tokens name: Get Tokens
parameters: [] parameters: []
parentId: fld_36a4be72380440a0ace83ad508a0458d parentId: fld_36a4be72380440a0ace83ad508a0458d
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/TokenManager/getTokens/" url: "{{ base_url }}/TokenManager/getTokens/"
_type: request _type: request
- _id: fld_36a4be72380440a0ace83ad508a0458d - _id: fld_36a4be72380440a0ace83ad508a0458d
created: 1569905755138 created: 1569905755138
description: Working with tokens ( keys ) description: Working with tokens ( keys )
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755138 metaSortKey: -1569905755138
modified: 1569934361048 modified: 1569934361048
name: Token Manager name: Token Manager
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: req_4f99d61a83c14da29882cc80c07ddf54 - _id: req_4f99d61a83c14da29882cc80c07ddf54
authentication: authentication:
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}" 'b64::JC5pZA==::46b', 'never' %}"
type: bearer type: bearer
body: {} body: {}
created: 1569905755127 created: 1569905755127
description: "" description: ""
headers: [] headers: []
isPrivate: false isPrivate: false
metaSortKey: -1569905755129 metaSortKey: -1569905755129
method: POST method: POST
modified: 1569938955854 modified: 1569938955854
name: Set Tokens name: Set Tokens
parameters: [] parameters: []
parentId: fld_36a4be72380440a0ace83ad508a0458d parentId: fld_36a4be72380440a0ace83ad508a0458d
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: /TokenManager/setTokens url: /TokenManager/setTokens
_type: request _type: request
- _id: req_fd2e096f45554b46b31755564a0932bf - _id: req_fd2e096f45554b46b31755564a0932bf
authentication: authentication:
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}" 'b64::JC5pZA==::46b', 'never' %}"
type: bearer type: bearer
body: {} body: {}
created: 1569934364782 created: 1569934364782
description: "" description: ""
headers: [] headers: []
isPrivate: false isPrivate: false
metaSortKey: -1569905755130.5 metaSortKey: -1569905755130.5
method: POST method: POST
modified: 1569937740242 modified: 1569937740242
name: Get Token Subject name: Get Token Subject
parameters: [] parameters: []
parentId: fld_8d34eca167ef426c8aa998c98bbe74e2 parentId: fld_8d34eca167ef426c8aa998c98bbe74e2
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/OpenManager/getTokenSubject" url: "{{ base_url }}/OpenManager/getTokenSubject"
_type: request _type: request
- _id: fld_8d34eca167ef426c8aa998c98bbe74e2 - _id: fld_8d34eca167ef426c8aa998c98bbe74e2
created: 1569934364777 created: 1569934364777
description: Working with tokens ( keys ) description: Working with tokens ( keys )
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755088 metaSortKey: -1569905755088
modified: 1569934370959 modified: 1569934370959
name: Open Manager name: Open Manager
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: env_7bc4918f1ec5467393a2ab36a460e4d0 - _id: env_7bc4918f1ec5467393a2ab36a460e4d0
color: null color: null
created: 1569905755147 created: 1569905755147
data: data:
base_url: "{{ scheme }}://{{ host }}{{ base_path }}" base_url: "{{ scheme }}://{{ host }}{{ base_path }}"
dataPropertyOrder: dataPropertyOrder:
"&": "&":
- base_url - base_url
isPrivate: false isPrivate: false
metaSortKey: 1569905755147 metaSortKey: 1569905755147
modified: 1569905805832 modified: 1569905805832
name: Base environment name: Base environment
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: environment _type: environment
- _id: jar_61bbb3fdc5ee80a49ee817b3e5341053a6022960 - _id: jar_61bbb3fdc5ee80a49ee817b3e5341053a6022960
cookies: cookies:
- creation: 2019-10-01T04:57:46.521Z - creation: 2019-10-01T04:57:46.521Z
domain: 192.168.1.3 domain: 192.168.1.3
hostOnly: true hostOnly: true
httpOnly: true httpOnly: true
id: "40058861704510274" id: "40058861704510274"
key: JSESSIONID key: JSESSIONID
lastAccessed: 2019-10-01T14:08:27.635Z lastAccessed: 2019-10-01T14:08:27.635Z
path: / path: /
secure: true secure: true
value: 2A63FF79AC604DB88D26DE41876B8B88 value: 2A63FF79AC604DB88D26DE41876B8B88
created: 1569905764431 created: 1569905764431
modified: 1569938907635 modified: 1569938907635
name: Default Jar name: Default Jar
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: cookie_jar _type: cookie_jar
- _id: env_92b9543a27e847689c951d1b1eeff229 - _id: env_92b9543a27e847689c951d1b1eeff229
color: "#cb5dc2" color: "#cb5dc2"
created: 1569905755144 created: 1569905755144
data: data:
base_path: / base_path: /
host: 192.168.1.3:8443 host: 192.168.1.3:8443
scheme: https scheme: https
dataPropertyOrder: null dataPropertyOrder: null
isPrivate: false isPrivate: false
metaSortKey: 1569905755144 metaSortKey: 1569905755144
modified: 1569935791597 modified: 1569935791597
name: colnod-test name: colnod-test
parentId: env_7bc4918f1ec5467393a2ab36a460e4d0 parentId: env_7bc4918f1ec5467393a2ab36a460e4d0
_type: environment _type: environment

View File

@ -1,270 +1,270 @@
_type: export _type: export
__export_format: 4 __export_format: 4
__export_date: 2019-10-02T15:35:40.243Z __export_date: 2019-10-02T15:35:40.243Z
__export_source: insomnia.desktop.app:v6.6.2 __export_source: insomnia.desktop.app:v6.6.2
resources: resources:
- _id: req_f0797b6411b144f0bf0a40d9300ee92f - _id: req_f0797b6411b144f0bf0a40d9300ee92f
authentication: authentication:
disabled: false disabled: false
password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0 password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0
type: basic type: basic
username: spaceti username: spaceti
body: body:
mimeType: application/json mimeType: application/json
text: >- text: >-
{ {
"username": "spaceti", "username": "spaceti",
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" "password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"
} }
created: 1569905755136 created: 1569905755136
description: "" description: ""
headers: headers:
- id: pair_061d15d1294e412caca8300559541695 - id: pair_061d15d1294e412caca8300559541695
name: content-type name: content-type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755136 metaSortKey: -1569905755136
method: POST method: POST
modified: 1570026752164 modified: 1570026752164
name: Login user name: Login user
parameters: [] parameters: []
parentId: fld_9ef1d96e0e6d40ef9094250114269496 parentId: fld_9ef1d96e0e6d40ef9094250114269496
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/AaaManager/authSession" url: "{{ base_url }}/AaaManager/authSession"
_type: request _type: request
- _id: fld_9ef1d96e0e6d40ef9094250114269496 - _id: fld_9ef1d96e0e6d40ef9094250114269496
created: 1569905755142 created: 1569905755142
description: Login information ( token ) description: Login information ( token )
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755142 metaSortKey: -1569905755142
modified: 1569905755142 modified: 1569905755142
name: login name: login
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: wrk_43652e59afaf4825a8bbbf31e346f616 - _id: wrk_43652e59afaf4825a8bbbf31e346f616
created: 1569905755149 created: 1569905755149
description: "Colnod system: [Product information](http://produkty.colsys.cz/colnod) description: "Colnod system: [Product information](http://produkty.colsys.cz/colnod)
Jira issues: [Communicaiton with Jira issues: [Communicaiton with
Colnod](https://spaceti.atlassian.net/secure/RapidBoard.jspa?rapidView=78\ Colnod](https://spaceti.atlassian.net/secure/RapidBoard.jspa?rapidView=78\
&projectKey=INT&modal=detail&selectedIssue=INT-3563)" &projectKey=INT&modal=detail&selectedIssue=INT-3563)"
modified: 1569905755149 modified: 1569905755149
name: Colnod server 1.0.0 name: Colnod server 1.0.0
parentId: null parentId: null
_type: workspace _type: workspace
- _id: req_00f9f99d933c4638900385ffbbd4f8f7 - _id: req_00f9f99d933c4638900385ffbbd4f8f7
authentication: authentication:
disabled: false disabled: false
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'no-history' %}" 'b64::JC5pZA==::46b', 'no-history' %}"
type: bearer type: bearer
body: body:
mimeType: application/json mimeType: application/json
text: "" text: ""
created: 1569905755134 created: 1569905755134
description: "" description: ""
headers: headers:
- id: pair_a2a3c43a20f64efbb8a4752c7e983c8e - id: pair_a2a3c43a20f64efbb8a4752c7e983c8e
name: Content-Type name: Content-Type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755134 metaSortKey: -1569905755134
method: POST method: POST
modified: 1570025488293 modified: 1570025488293
name: Get subjects name: Get subjects
parameters: [] parameters: []
parentId: fld_2fb4c2cef1f44cff83d6b00fe0886384 parentId: fld_2fb4c2cef1f44cff83d6b00fe0886384
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/SubjectManager/getSubjects" url: "{{ base_url }}/SubjectManager/getSubjects"
_type: request _type: request
- _id: fld_2fb4c2cef1f44cff83d6b00fe0886384 - _id: fld_2fb4c2cef1f44cff83d6b00fe0886384
created: 1569905755140 created: 1569905755140
description: Operations about user description: Operations about user
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755140 metaSortKey: -1569905755140
modified: 1569905755140 modified: 1569905755140
name: user name: user
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: req_9e42a5023f9d4235a5de099cd7573d2b - _id: req_9e42a5023f9d4235a5de099cd7573d2b
authentication: authentication:
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}" 'b64::JC5pZA==::46b', 'never' %}"
type: bearer type: bearer
body: body:
mimeType: application/json mimeType: application/json
text: "" text: ""
created: 1569905755131 created: 1569905755131
description: "" description: ""
headers: headers:
- disabled: false - disabled: false
id: pair_e888b6c679d74b0988f0dd2d77690383 id: pair_e888b6c679d74b0988f0dd2d77690383
name: Content-Type name: Content-Type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755131 metaSortKey: -1569905755131
method: POST method: POST
modified: 1569998661557 modified: 1569998661557
name: Get Tokens name: Get Tokens
parameters: [] parameters: []
parentId: fld_36a4be72380440a0ace83ad508a0458d parentId: fld_36a4be72380440a0ace83ad508a0458d
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/TokenManager/getTokens/" url: "{{ base_url }}/TokenManager/getTokens/"
_type: request _type: request
- _id: fld_36a4be72380440a0ace83ad508a0458d - _id: fld_36a4be72380440a0ace83ad508a0458d
created: 1569905755138 created: 1569905755138
description: Working with tokens ( keys ) description: Working with tokens ( keys )
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755138 metaSortKey: -1569905755138
modified: 1569934361048 modified: 1569934361048
name: Token Manager name: Token Manager
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: req_4f99d61a83c14da29882cc80c07ddf54 - _id: req_4f99d61a83c14da29882cc80c07ddf54
authentication: authentication:
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}" 'b64::JC5pZA==::46b', 'never' %}"
type: bearer type: bearer
body: {} body: {}
created: 1569905755127 created: 1569905755127
description: "" description: ""
headers: [] headers: []
isPrivate: false isPrivate: false
metaSortKey: -1569905755129 metaSortKey: -1569905755129
method: POST method: POST
modified: 1569938955854 modified: 1569938955854
name: Set Tokens name: Set Tokens
parameters: [] parameters: []
parentId: fld_36a4be72380440a0ace83ad508a0458d parentId: fld_36a4be72380440a0ace83ad508a0458d
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: /TokenManager/setTokens url: /TokenManager/setTokens
_type: request _type: request
- _id: req_fd2e096f45554b46b31755564a0932bf - _id: req_fd2e096f45554b46b31755564a0932bf
authentication: authentication:
token:  {% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f', token:  {% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'no-history' %} 'b64::JC5pZA==::46b', 'no-history' %}
type: bearer type: bearer
body: {} body: {}
created: 1569934364782 created: 1569934364782
description: "" description: ""
headers: [] headers: []
isPrivate: false isPrivate: false
metaSortKey: -1569905755130.5 metaSortKey: -1569905755130.5
method: POST method: POST
modified: 1570028425988 modified: 1570028425988
name: Get Token Subject name: Get Token Subject
parameters: [] parameters: []
parentId: fld_8d34eca167ef426c8aa998c98bbe74e2 parentId: fld_8d34eca167ef426c8aa998c98bbe74e2
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/OpenManager/getTokenSubject" url: "{{ base_url }}/OpenManager/getTokenSubject"
_type: request _type: request
- _id: fld_8d34eca167ef426c8aa998c98bbe74e2 - _id: fld_8d34eca167ef426c8aa998c98bbe74e2
created: 1569934364777 created: 1569934364777
description: Working with tokens ( keys ) description: Working with tokens ( keys )
environment: {} environment: {}
environmentPropertyOrder: null environmentPropertyOrder: null
metaSortKey: -1569905755088 metaSortKey: -1569905755088
modified: 1569934370959 modified: 1569934370959
name: Open Manager name: Open Manager
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group _type: request_group
- _id: req_7007bb1f6a0243a7b0568741f691f6d1 - _id: req_7007bb1f6a0243a7b0568741f691f6d1
authentication: authentication:
disabled: false disabled: false
password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0 password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0
type: basic type: basic
username: spaceti username: spaceti
body: body:
mimeType: application/json mimeType: application/json
text: >- text: >-
{ {
"username": "spaceti", "username": "spaceti",
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" "password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"
} }
created: 1570025458784 created: 1570025458784
description: "" description: ""
headers: headers:
- id: pair_74b4df5d54d1446a90e6a668d373fb79 - id: pair_74b4df5d54d1446a90e6a668d373fb79
name: Content-Type name: Content-Type
value: application/json value: application/json
isPrivate: false isPrivate: false
metaSortKey: -1569905755129.75 metaSortKey: -1569905755129.75
method: POST method: POST
modified: 1570030518745 modified: 1570030518745
name: Get Token Subject Full authorization name: Get Token Subject Full authorization
parameters: [] parameters: []
parentId: fld_8d34eca167ef426c8aa998c98bbe74e2 parentId: fld_8d34eca167ef426c8aa998c98bbe74e2
settingDisableRenderRequestBody: false settingDisableRenderRequestBody: false
settingEncodeUrl: true settingEncodeUrl: true
settingRebuildPath: true settingRebuildPath: true
settingSendCookies: true settingSendCookies: true
settingStoreCookies: true settingStoreCookies: true
url: "{{ base_url }}/OpenManager/getTokenSubject" url: "{{ base_url }}/OpenManager/getTokenSubject"
_type: request _type: request
- _id: env_7bc4918f1ec5467393a2ab36a460e4d0 - _id: env_7bc4918f1ec5467393a2ab36a460e4d0
color: null color: null
created: 1569905755147 created: 1569905755147
data: data:
base_url: "{{ scheme }}://{{ host }}{{ base_path }}" base_url: "{{ scheme }}://{{ host }}{{ base_path }}"
dataPropertyOrder: dataPropertyOrder:
"&": "&":
- base_url - base_url
isPrivate: false isPrivate: false
metaSortKey: 1569905755147 metaSortKey: 1569905755147
modified: 1569905805832 modified: 1569905805832
name: Base environment name: Base environment
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: environment _type: environment
- _id: jar_61bbb3fdc5ee80a49ee817b3e5341053a6022960 - _id: jar_61bbb3fdc5ee80a49ee817b3e5341053a6022960
cookies: cookies:
- creation: 2019-10-01T04:57:46.521Z - creation: 2019-10-01T04:57:46.521Z
domain: 192.168.1.3 domain: 192.168.1.3
hostOnly: true hostOnly: true
httpOnly: true httpOnly: true
id: "9919962998126108" id: "9919962998126108"
key: JSESSIONID key: JSESSIONID
lastAccessed: 2019-10-02T15:35:00.995Z lastAccessed: 2019-10-02T15:35:00.995Z
path: / path: /
secure: true secure: true
value: D64B135F2F3D5103F02F0B9235B13722 value: D64B135F2F3D5103F02F0B9235B13722
created: 1569905764431 created: 1569905764431
modified: 1570030500995 modified: 1570030500995
name: Default Jar name: Default Jar
parentId: wrk_43652e59afaf4825a8bbbf31e346f616 parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: cookie_jar _type: cookie_jar
- _id: env_92b9543a27e847689c951d1b1eeff229 - _id: env_92b9543a27e847689c951d1b1eeff229
color: "#cb5dc2" color: "#cb5dc2"
created: 1569905755144 created: 1569905755144
data: data:
base_path: / base_path: /
host: 192.168.1.3:8443 host: 192.168.1.3:8443
scheme: https scheme: https
dataPropertyOrder: null dataPropertyOrder: null
isPrivate: false isPrivate: false
metaSortKey: 1569905755144 metaSortKey: 1569905755144
modified: 1569935791597 modified: 1569935791597
name: colnod-test name: colnod-test
parentId: env_7bc4918f1ec5467393a2ab36a460e4d0 parentId: env_7bc4918f1ec5467393a2ab36a460e4d0
_type: environment _type: environment

304
Insomnia_2019-10-07.yaml Normal file
View File

@ -0,0 +1,304 @@
_type: export
__export_format: 4
__export_date: 2019-10-07T11:07:18.147Z
__export_source: insomnia.desktop.app:v7.0.0
resources:
- _id: req_f0797b6411b144f0bf0a40d9300ee92f
authentication:
disabled: false
password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0
type: basic
username: spaceti
body:
mimeType: application/json
text: >-
{
"username": "spaceti",
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"
}
created: 1569905755136
description: ""
headers:
- id: pair_061d15d1294e412caca8300559541695
name: content-type
value: application/json
isPrivate: false
metaSortKey: -1569905755136
method: POST
modified: 1570026752164
name: Login user
parameters: []
parentId: fld_9ef1d96e0e6d40ef9094250114269496
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: "{{ base_url }}/AaaManager/authSession"
_type: request
- _id: fld_9ef1d96e0e6d40ef9094250114269496
created: 1569905755142
description: Login information ( token )
environment: {}
environmentPropertyOrder: null
metaSortKey: -1569905755142
modified: 1569905755142
name: login
parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group
- _id: wrk_43652e59afaf4825a8bbbf31e346f616
created: 1569905755149
description: "Colnod system: [Product information](http://produkty.colsys.cz/colnod)
Jira issues: [Communicaiton with
Colnod](https://spaceti.atlassian.net/secure/RapidBoard.jspa?rapidView=78\
&projectKey=INT&modal=detail&selectedIssue=INT-3563)"
modified: 1569905755149
name: Colnod server 1.0.0
parentId: null
_type: workspace
- _id: req_00f9f99d933c4638900385ffbbd4f8f7
authentication:
disabled: false
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'no-history' %}"
type: bearer
body:
mimeType: application/json
text: ""
created: 1569905755134
description: ""
headers:
- id: pair_a2a3c43a20f64efbb8a4752c7e983c8e
name: Content-Type
value: application/json
isPrivate: false
metaSortKey: -1569905755134
method: POST
modified: 1570444685408
name: Get subjects Bearer
parameters: []
parentId: fld_2fb4c2cef1f44cff83d6b00fe0886384
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: "{{ base_url }}/SubjectManager/getSubjects"
_type: request
- _id: fld_2fb4c2cef1f44cff83d6b00fe0886384
created: 1569905755140
description: Operations about user
environment: {}
environmentPropertyOrder: null
metaSortKey: -1569905755140
modified: 1569905755140
name: user
parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group
- _id: req_1c6b6e7783ac4eec95802f655899b9ea
authentication:
disabled: false
password: ""
type: basic
username: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}"
body:
mimeType: application/json
text: ""
created: 1570444564217
description: ""
headers:
- id: pair_a2a3c43a20f64efbb8a4752c7e983c8e
name: Content-Type
value: application/json
isPrivate: false
metaSortKey: -1569905755132.5
method: POST
modified: 1570444765270
name: Get subjects
parameters: []
parentId: fld_2fb4c2cef1f44cff83d6b00fe0886384
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: "{{ base_url }}/SubjectManager/getSubjects"
_type: request
- _id: req_9e42a5023f9d4235a5de099cd7573d2b
authentication:
disabled: false
password: ""
type: basic
username: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}"
body:
mimeType: application/json
text: ""
created: 1569905755131
description: ""
headers:
- disabled: false
id: pair_e888b6c679d74b0988f0dd2d77690383
name: Content-Type
value: application/json
isPrivate: false
metaSortKey: -1569905755131
method: POST
modified: 1570445587166
name: Get Tokens
parameters: []
parentId: fld_36a4be72380440a0ace83ad508a0458d
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: "{{ base_url }}/TokenManager/getTokens/"
_type: request
- _id: fld_36a4be72380440a0ace83ad508a0458d
created: 1569905755138
description: Working with tokens ( keys )
environment: {}
environmentPropertyOrder: null
metaSortKey: -1569905755138
modified: 1569934361048
name: Token Manager
parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group
- _id: req_4f99d61a83c14da29882cc80c07ddf54
authentication:
token: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}"
type: bearer
body: {}
created: 1569905755127
description: ""
headers: []
isPrivate: false
metaSortKey: -1569905755129
method: POST
modified: 1569938955854
name: Set Tokens
parameters: []
parentId: fld_36a4be72380440a0ace83ad508a0458d
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: /TokenManager/setTokens
_type: request
- _id: req_fd2e096f45554b46b31755564a0932bf
authentication:
disabled: false
password: ""
type: basic
username: "{% response 'body', 'req_f0797b6411b144f0bf0a40d9300ee92f',
'b64::JC5pZA==::46b', 'never' %}"
body: {}
created: 1569934364782
description: ""
headers: []
isPrivate: false
metaSortKey: -1569905755130.5
method: POST
modified: 1570445314172
name: Get Token Subject
parameters: []
parentId: fld_8d34eca167ef426c8aa998c98bbe74e2
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: "{{ base_url }}/OpenManager/getTokenSubject"
_type: request
- _id: fld_8d34eca167ef426c8aa998c98bbe74e2
created: 1569934364777
description: Working with tokens ( keys )
environment: {}
environmentPropertyOrder: null
metaSortKey: -1569905755088
modified: 1569934370959
name: Open Manager
parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: request_group
- _id: req_7007bb1f6a0243a7b0568741f691f6d1
authentication:
disabled: false
password: E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0
type: basic
username: spaceti
body:
mimeType: application/json
text: >-
{
"username": "spaceti",
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"
}
created: 1570025458784
description: ""
headers:
- id: pair_74b4df5d54d1446a90e6a668d373fb79
name: Content-Type
value: application/json
isPrivate: false
metaSortKey: -1569905755129.75
method: POST
modified: 1570030518745
name: Get Token Subject Full authorization
parameters: []
parentId: fld_8d34eca167ef426c8aa998c98bbe74e2
settingDisableRenderRequestBody: false
settingEncodeUrl: true
settingRebuildPath: true
settingSendCookies: true
settingStoreCookies: true
url: "{{ base_url }}/OpenManager/getTokenSubject"
_type: request
- _id: env_7bc4918f1ec5467393a2ab36a460e4d0
color: null
created: 1569905755147
data:
base_url: "{{ scheme }}://{{ host }}{{ base_path }}"
dataPropertyOrder:
"&":
- base_url
isPrivate: false
metaSortKey: 1569905755147
modified: 1569905805832
name: Base environment
parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: environment
- _id: jar_61bbb3fdc5ee80a49ee817b3e5341053a6022960
cookies:
- creation: 2019-10-01T04:57:46.521Z
domain: 192.168.1.3
hostOnly: true
httpOnly: true
id: "6291984803147272"
key: JSESSIONID
lastAccessed: 2019-10-07T10:53:10.794Z
path: /
secure: true
value: F2CB995532DC96C0757326A9057551DA
created: 1569905764431
modified: 1570445590794
name: Default Jar
parentId: wrk_43652e59afaf4825a8bbbf31e346f616
_type: cookie_jar
- _id: env_92b9543a27e847689c951d1b1eeff229
color: "#cb5dc2"
created: 1569905755144
data:
base_path: /
host: 192.168.1.3:8443
scheme: https
dataPropertyOrder: null
isPrivate: false
metaSortKey: 1569905755144
modified: 1569935791597
name: colnod-test
parentId: env_7bc4918f1ec5467393a2ab36a460e4d0
_type: environment

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]') TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]')
curl -kv -u "$TOKEN:" -X POST https://192.168.1.3:8443/SubjectManager/getSubjects curl -kv -u "$TOKEN:" -X POST https://192.168.1.3:8443/SubjectManager/getSubjects

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]') TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]')
curl -kv -u "$TOKEN:" -X POST https://192.168.1.3:8443/TokenManager/getTokens/ curl -kv -u "$TOKEN:" -X POST https://192.168.1.3:8443/TokenManager/getTokens/

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]') TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]')
echo TOKEN
curl -kv -u "$TOKEN:" -X POST https://192.168.1.3:8443/OpenManager/getTokenSubject curl -kv -u "$TOKEN:" -X POST https://192.168.1.3:8443/OpenManager/getTokenSubject

37
http/Curl.txt Normal file
View File

@ -0,0 +1,37 @@
///SubjectManager/getSubjects
RESPONSE
HTTP/1.1 200
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=77278D21902AE1DE75E43204C2770545;path=/;Secure;HttpOnly
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 03 Oct 2019 11:12:03 GMT
REQUEST
POST /SubjectManager/getSubjects HTTP/1.1
Host: 192.168.1.3:8443
Authorization: Basic ODkwZjllNmMtMDIxNi00ZThiLWI2MjgtMjViOGI2ZmFiNWM4Og==
User-Agent: curl/7.65.3
Accept: */*
POST /AaaManager/authSession HTTP/1.1
Host: localhost:8080
Authorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==
User-Agent: curl/7.65.3
Accept: */*
Content-Type: application/json
Content-Length: 164
{
"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0",
"username":"spaceti"
}

12
http/Insomnia.txt Normal file
View File

@ -0,0 +1,12 @@
POST /OpenManager/getTokenSubject HTTP/1.1
Host: localhost:8080
Authorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==
User-Agent: insomnia/7.0.0
Content-Type: application/json
Accept: */*
Content-Length: 173
{
"username": "spaceti",
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"
}

24
http/Qt requests.txt Normal file
View File

@ -0,0 +1,24 @@
POST /AaaManager/authSession HTTP/1.1
Host: localhost:8080
Authorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==
Content-Type: application/json; charset=UTF-8
Content-Length: 178
Connection: Keep-Alive
Accept-Encoding: gzip, deflate
Accept-Language: en-AI,*
User-Agent: Mozilla/5.0
{
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0",
"username": "spaceti"
}
//no data because cant get token
POST /SubjectManager/getSubjects HTTP/1.1
Host: localhost:8080
Content-Length: 0
Connection: Keep-Alive
Accept-Encoding: gzip, deflate
Accept-Language: en-AI,*
User-Agent: Mozilla/5.0

View File

@ -0,0 +1,5 @@
POST /SubjectManager/getSubjects HTTP/1.1
Host: 192.168.1.3:8443
Authorization: Basic " + tkn.toUtf8().toBase64() + "
User-Agent: curl/7.65.3
Accept: */*

View File

@ -2,8 +2,18 @@ INCLUDEPATH += $$PWD
#SRC_DIR = $$PWD #SRC_DIR = $$PWD
message($$PWD) message($$PWD)
SOURCES += \ SOURCES += \
$$PWD/requestmanager.cpp $$PWD/databasemanager.cpp \
$$PWD/dataprocessor.cpp \
$$PWD/entity.cpp \
$$PWD/requestmanager.cpp \
$$PWD/subject.cpp \
$$PWD/token.cpp
HEADERS += \ HEADERS += \
$$PWD/requestmanager.h $$PWD/databasemanager.h \
$$PWD/dataprocessor.h \
$$PWD/entity.h \
$$PWD/requestmanager.h \
$$PWD/subject.h \
$$PWD/token.h
message($$SOURCES) message($$SOURCES)

View File

@ -0,0 +1,50 @@
#include "databasemanager.h"
DatabaseManager::DatabaseManager(QString host, QString dbName, QString user, QString password)
{
db = QSqlDatabase::addDatabase("QPSQL");
db.setDatabaseName(dbName);
db.setHostName(host);
db.setUserName(user);
db.setPassword(password);
opened = db.open();
if (!opened)
{
qDebug() << "Opening error" + db.lastError().text();
}
query = QSqlQuery("query", db);
}
void DatabaseManager::saveSubject(Subject subject, QString table)
{
//TODO
}
void DatabaseManager::saveToken(Subject subject, QString table)
{
//TODO
}
QString DatabaseManager::getTestMessage(int id)
{
query.prepare("SELECT message FROM test WHERE id = :id");
query.bindValue(":id", id);
query.exec();
query.next();
//qDebug() << query.value(0);
return query.value(0).toString();
}
void DatabaseManager::createTestRecord(QString msg)
{
query.exec("SELECT MAX(id) FROM test");
query.next();
int id = query.value(0).toInt() + 1;
QString statement = QString("INSERT INTO test (id, message) VALUES (%1, '%2')").arg(id).arg(msg);
query.exec(statement);
query.next();
qDebug() << "U inserted new row, id: " << id << "msg: " << getTestMessage(id);
}

View File

@ -0,0 +1,38 @@
#ifndef DATABASEMANAGER_H
#define DATABASEMANAGER_H
#include <QSql>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QVariant>
#include <QDebug>
#include "subject.h"
#include "token.h"
class DatabaseManager : public QObject
{
Q_OBJECT
public:
DatabaseManager(QString host, QString dbName, QString user, QString password);
void saveSubject(Subject subject, QString table);
void saveToken(Subject subject, QString table);
QString getTestMessage(int id);
void createTestRecord(QString msg);
bool getOpened() {return opened;}
private:
QSqlDatabase db;
QSqlQuery query;
bool opened;
};
#endif // DATABASEMANAGER_H

View File

@ -0,0 +1,56 @@
#include "dataprocessor.h"
DataProcessor::DataProcessor()
{
db = new DatabaseManager("192.168.1.94", "deloitte", "postgres", "34rjkciea12");
reqMan = new RequestManager;
}
void DataProcessor::processSubjects()
{
reqMan->getSubjects();
QEventLoop loop;
QObject::connect(reqMan, &RequestManager::responseReady, &loop, &QEventLoop::quit);
loop.exec();
prepareSubjectJson(reqMan->getResponse());
}
/*
QUuid DataProcessor::getSubjectId(const QString &email) const
{
auto subject = this->getSubjectByEmail(email);
if (!subject)
{
return "";
}
return subject->getId();
}
Subject *DataProccesor::getSubjectById(const QUuid &id) const
{
return this->subjectsById.value(id);
}
Subject DataProcessor::getSubjectByEmail(const QString &email) const
{
return this->subjectsByEmail.value(email);
}
Token *Client::getTokenById(const QUuid &id) const
{
return this->tokensById.value(id);
}
Token *Client::getTokenByData(const QString &data) const
{
return this->tokensByData.value(data);
}*/
void DataProcessor::prepareSubjectJson(QString json)
{
QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8());
subjectArr = doc.object()["items"].toArray();
}

View File

@ -0,0 +1,41 @@
#ifndef DATAPROCESSOR_H
#define DATAPROCESSOR_H
#include "token.h"
#include "subject.h"
#include "requestmanager.h"
#include "databasemanager.h"
#include <QJsonDocument>
#include <qjsonarray.h>
class DataProcessor : public QObject
{
Q_OBJECT
public:
DataProcessor();
void processSubjects();
Subject *getSubjectById(const QUuid &id) const;
Subject *getSubjectByEmail(const QString &email) const;
QUuid getSubjectId(const QString &email) const;
Token *getTokenById(const QUuid &id) const;
Token *getTokenByData(const QString &data) const;
private slots:
void prepareSubjectJson(QString json);
private:
RequestManager *reqMan;
DatabaseManager *db;
QJsonArray subjectArr;
};
#endif // DATAPROCESSOR_H

52
src/colnod/entity.cpp Normal file
View File

@ -0,0 +1,52 @@
#include <QJsonObject>
#include "entity.h"
const QUuid &Entity::getId() const {
return id;
}
void Entity::setId(const QUuid &id) {
Entity::id = id;
}
const QString &Entity::getName() const {
return name;
}
void Entity::setName(const QString &name) {
Entity::name = name;
}
const QString &Entity::getDescription() const {
return description;
}
void Entity::setDescription(const QString &description) {
Entity::description = description;
}
uint64_t Entity::getLastUpdate() const {
return lastUpdate;
}
void Entity::setLastUpdate(uint64_t lastUpdate) {
this->lastUpdate = lastUpdate;
}
void Entity::fromJSON(const QJsonObject &json) {
id = json.value("id").toString();
name = json.value("name").toString();
description = json.value("description").toString();
lastUpdate = json.value("lastUpdate").toDouble();
}
QJsonObject Entity::toJSON() const {
QJsonObject json;
json.value("id") = id.toString();
json.value("name") = name;
json.value("description") = description;
json.value("lastUpdate") = lastUpdate;
return json;
}

37
src/colnod/entity.h Normal file
View File

@ -0,0 +1,37 @@
#ifndef COLNOD_CONNECTOR_ENTITY_H
#define COLNOD_CONNECTOR_ENTITY_H
#include <QtCore/QObject>
#include <QtCore/QUuid>
#include <QtCore/QJsonObject>
class Entity : public QObject {
Q_OBJECT
public:
using QObject::QObject;
const QUuid &getId() const;
void setId(const QUuid &id);
const QString &getName() const;
void setName(const QString &name);
const QString &getDescription() const;
void setDescription(const QString &description);
uint64_t getLastUpdate() const;
void setLastUpdate(uint64_t lastUpdate);
virtual void fromJSON(const QJsonObject &json);
virtual QJsonObject toJSON() const;
protected:
QUuid id;
QString name;
QString description;
qint64 lastUpdate;
};
#endif //COLNOD_CONNECTOR_ENTITY_H

View File

@ -1,124 +1,145 @@
#include "requestmanager.h" #include "requestmanager.h"
RequestManager::RequestManager() RequestManager::RequestManager()
{ {
manager = new QNetworkAccessManager(); manager = new QNetworkAccessManager();
token = ""; token = "";
loginStatus = false; loginStatus = false; //should be false, true for testing request header
QFile configFile(QDir::current().filePath("config.json"));
if (!configFile.open(QIODevice::ReadOnly)) { QFile configFile(QDir::current().filePath("config.json"));
qCritical() << "Couldn't open config file config.json" << QDir::current().filePath("config.json"); if (!configFile.open(QIODevice::ReadOnly)) {
QCoreApplication::exit(-1); qCritical() << "Couldn't open config file config.json" << QDir::current().filePath("config.json");
return; QCoreApplication::exit(-1);
} return;
}
this->config = QJsonDocument::fromJson(configFile.readAll()); this->config = QJsonDocument::fromJson(configFile.readAll());
QObject::connect(manager, &QNetworkAccessManager::sslErrors, this, &RequestManager::onSSLError); QObject::connect(manager, &QNetworkAccessManager::sslErrors, this, &RequestManager::onSSLError);
} }
void RequestManager::login(QString host, QString username, QString password) void RequestManager::login(QString host, QString username, QString password)
{ {
QNetworkRequest request; QNetworkRequest request;
QString hash = encryptedPassword(password); QString hash = encryptedPassword(password);
authHeader = getLoginHeader(username, hash); authHeader = getLoginHeader(username, hash);
QJsonObject reqBody = { QJsonObject reqBody = {
{"password", hash}, {"password", hash},
{"username", username} {"username", username}
}; };
this->host = host; this->host = host;
request.setUrl(host + "/AaaManager/authSession"); request.setUrl(host + "/AaaManager/authSession");
request.setRawHeader("Authorization", authHeader.toLocal8Bit()); request.setRawHeader("Authorization", authHeader.toLocal8Bit());
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8");
QJsonDocument jsonDocument; QJsonDocument jsonDocument;
jsonDocument.setObject(reqBody);
QNetworkReply* reply = manager->post(request, jsonDocument.toJson()); jsonDocument.setObject(reqBody);
QObject::connect(reply, &QNetworkReply::finished, [=]() { QNetworkReply* reply = manager->post(request, jsonDocument.toJson());
if (reply->error()) QObject::connect(reply, &QNetworkReply::finished, [=]() {
{ if (reply->error())
qDebug() << reply->errorString(); {
loginStatus = false; qDebug() << reply->errorString();
qDebug() << reply->readAll(); loginStatus = false;
return; return;
} }
jsonResponse = reply->readAll(); jsonResponse = reply->readAll();
prepareAuthHeader(); prepareAuthHeader();
emit successLogin(); loginStatus = true;
reply->deleteLater(); emit successLogin();
}); reply->deleteLater();
} });
}
void RequestManager::getRequest(QString endpoint)
{ void RequestManager::getRequest(QString endpoint)
QNetworkRequest request; {
request.setUrl(host + endpoint); if (!loginStatus)
request.setRawHeader("Authorization", authHeader.toLocal8Bit()); {
QNetworkReply* reply = manager->post(request, QByteArray()); login(config.object()["host"].toString(), config.object()["username"].toString(), config.object()["password"].toString());
QObject::connect(reply, &QNetworkReply::finished, [=]() { // QEventLoop loop;
if (reply->error()) // QObject::connect(this, &RequestManager::successLogin, &loop, &QEventLoop::quit);
{ // loop.exec();
qDebug() << reply->errorString(); }
qDebug() << reply->readAll();
return; //
} //host = config.object()["host"].toString();
//
//print reply info
auto items = reply->rawHeaderPairs(); QNetworkRequest request;
for (auto item : items) request.setUrl(host + endpoint);
{ qDebug() << authHeader;
qDebug() << item; request.setRawHeader("Authorization", authHeader.toLocal8Bit());
} request.setRawHeader("User-Agent", "curl/7.65.3");
auto reqHeaderName = reply->request().rawHeaderList(); request.setRawHeader("Connection", "Keep-Alive");
for (QString header : reqHeaderName) request.setRawHeader("Accept", "*/*");
{ request.setRawHeader("Accept-Encoding", "*");
qDebug() << reply->request().rawHeader(header.toUtf8()); request.setRawHeader("Accept-Language", "*");
}
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); QNetworkReply* reply = manager->post(request, QByteArray());
jsonResponse = reply->readAll(); //
emit responseReady(); //QEventLoop loop;
}); //QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
} // loop.exec();
//
QString RequestManager::getFromJson(QString json, QString member)
{ QObject::connect(reply, &QNetworkReply::finished, [=]() {
QJsonParseError err; if (reply->error())
QJsonDocument document = QJsonDocument::fromJson(json.toUtf8(),&err); {
if (err.error != 0) qDebug() << reply->errorString();
{ qDebug() << reply->readAll();
qDebug() << err.errorString(); loginStatus = false;
} getRequest(endpoint);
return document[member].toString(); return;
} }
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
QString RequestManager::encryptedPassword(QString password) jsonResponse = reply->readAll();
{ emit responseReady();
return QCryptographicHash::hash(password.toLocal8Bit(), QCryptographicHash::Sha512).toHex().toUpper(); });
} }
QString RequestManager::getLoginHeader(QString username, QString hash) QString RequestManager::getFromJson(QString json, const QString &member)
{ {
QString authValue = username + ":" + hash; QJsonParseError err;
return "Basic " + authValue.toLocal8Bit().toBase64(); QJsonDocument document = QJsonDocument::fromJson(json.toUtf8(),&err);
} if (err.error != 0)
{
void RequestManager::prepareAuthHeader() qDebug() << err.errorString();
{ }
token = getFromJson(jsonResponse, "id"); return document.object().value(member).toString();
QString authValue = token + ":"; }
authHeader = "Basic" + authValue.toLocal8Bit().toBase64();
} QString RequestManager::encryptedPassword(QString password)
{
void RequestManager::onSSLError(QNetworkReply *reply, const QList<QSslError> &errors) return QCryptographicHash::hash(password.toLocal8Bit(), QCryptographicHash::Sha512).toHex().toUpper();
{ }
qDebug() << "Network SSL errors";
for (const auto &error : errors) QString RequestManager::getLoginHeader(QString username, QString hash)
{ {
if (error.error() == QSslError::SelfSignedCertificate) QString authValue = username + ":" + hash;
reply->ignoreSslErrors(errors); return "Basic " + authValue.toLocal8Bit().toBase64();
qDebug() << error.errorString(); }
}
void RequestManager::prepareAuthHeader()
} {
token = getFromJson(jsonResponse, "id");
QString authValue = token + ":";
authHeader = "Basic" + authValue.toLocal8Bit().toBase64();
}
void RequestManager::onSSLError(QNetworkReply *reply, const QList<QSslError> &errors)
{
qDebug() << "Network SSL errors";
for (const auto &error : errors)
{
if (error.error() == QSslError::SelfSignedCertificate)
reply->ignoreSslErrors(errors);
qDebug() << error.errorString();
}
}
void RequestManager::getSubjects()
{
getRequest("/SubjectManager/getSubjects");
}

View File

@ -20,24 +20,35 @@
#include <QDir> #include <QDir>
#include <QSslError> #include <QSslError>
#include "databasemanager.h"
#include "token.h"
#include "subject.h"
class RequestManager : public QObject class RequestManager : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
RequestManager(); RequestManager();
void getSubjects();
void login(QString endpoint, QString username, QString password); void login(QString endpoint, QString username, QString password);
void getRequest(QString endpoint); void getRequest(QString endpoint);
void fetchSubjects(QString endpoint); void loadSubjectsFromColnodToDB();
const QJsonDocument &getConfig() const {return config;} const QJsonDocument &getConfig() const {return config;}
const QString &getResponse() const {return jsonResponse;} const QString &getResponse() const {return jsonResponse;}
QString getToken(){return token;} QString getToken(){return token;}
private: private:
QString getFromJson(QString json, QString member); QString getFromJson(QString json, const QString &member);
QString encryptedPassword(QString password); QString encryptedPassword(QString password);
QString getLoginHeader(QString username, QString hash); QString getLoginHeader(QString username, QString hash);
void prepareAuthHeader(); void prepareAuthHeader();
private slots: private slots:
void onSSLError(QNetworkReply *reply, const QList<QSslError> &errors); void onSSLError(QNetworkReply *reply, const QList<QSslError> &errors);
@ -48,14 +59,13 @@ signals:
private: private:
QNetworkAccessManager* manager; QNetworkAccessManager* manager;
QJsonDocument config; QJsonDocument config;
QString authHeader; QString authHeader;
QString host; QString host;
QString token; QString token;
QString jsonResponse; QString jsonResponse;
bool loginStatus; bool loginStatus;
QString tenant;
}; };

74
src/colnod/subject.cpp Normal file
View File

@ -0,0 +1,74 @@
#include <utility>
#include "subject.h"
#include <QJsonArray>
QString Subject::getEmail() const {
return attributes["email"].toString();
}
void Subject::fromJSON(const QJsonObject &json) {
Entity::fromJSON(json);
//attributes = json["attributes"]["items"].toObject();
attributes = json.value("attributes").toObject().value("items").toObject();
const auto &tokenFlagsArray = json.value("tokenFlags").toArray();
for(const auto &flag : tokenFlagsArray){
tokenFlags.insert(flag.toString());
}
pin = json.value("pin").toString();
const auto &pinFlagsArray = json.value("pinFlags").toArray();
for(const auto &flag : pinFlagsArray){
pinFlags.insert(flag.toString());
}
}
QJsonObject Subject::toJSON() const {
QJsonObject json = Entity::toJSON();
QJsonObject items({{"items", attributes}});
json.value("atributes") = items;
json.value("tokenFlags") = QJsonArray::fromStringList(tokenFlags.toList());
json.value("pin") = pin;
json.value("pinFlags") = QJsonArray::fromStringList(pinFlags.toList());
return json;
}
const QJsonObject &Subject::getAttributes() const {
return attributes;
}
void Subject::setAttributes(const QJsonObject &attributes) {
Subject::attributes = attributes;
}
const QSet<QString> &Subject::getTokenFlags() const {
return tokenFlags;
}
void Subject::setTokenFlags(const QSet<QString> &tokenFlags) {
Subject::tokenFlags = tokenFlags;
}
const QString &Subject::getPin() const {
return pin;
}
void Subject::setPin(const QString &pin) {
Subject::pin = pin;
}
const QSet<QString> &Subject::getPinFlags() const {
return pinFlags;
}
void Subject::setPinFlags(const QSet<QString> &pinFlags) {
Subject::pinFlags = pinFlags;
}

35
src/colnod/subject.h Normal file
View File

@ -0,0 +1,35 @@
#ifndef COLNOD_CONNECTOR_SUBJECT_H
#define COLNOD_CONNECTOR_SUBJECT_H
#include <QSet>
#include "entity.h"
class Subject : public Entity {
public:
using Entity::Entity;
QString getEmail() const;
const QJsonObject &getAttributes() const;
void setAttributes(const QJsonObject &attributes);
const QSet<QString> &getTokenFlags() const;
void setTokenFlags(const QSet<QString> &tokenFlags);
const QString &getPin() const;
void setPin(const QString &pin);
const QSet<QString> &getPinFlags() const;
void setPinFlags(const QSet<QString> &pinFlags);
void fromJSON(const QJsonObject &json) override;
QJsonObject toJSON() const override;
protected:
QJsonObject attributes;
QSet<QString> tokenFlags;
QString pin;
QSet<QString> pinFlags;
};
#endif //COLNOD_CONNECTOR_SUBJECT_H

108
src/colnod/token.cpp Normal file
View File

@ -0,0 +1,108 @@
#include "token.h"
#include <QJsonArray>
void Token::fromJSON(const QJsonObject &json) {
Entity::fromJSON(json);
tokenType = json.value("tokenType").toString();
tokenBits = json.value("tokenBits").toInt();
tokenData = json.value("tokenData").toString();
validFrom = json.value("validFrom").toDouble();
validTo = json.value("validTo").toDouble();
timeToLive = json.value("timeToLive").toInt();
authErrors = json["authErrors"].toInt();
const auto &flagsArray = json["flags"].toArray();
for(const auto &flag : flagsArray){
flags.insert(flag.toString());
}
subjectId = json.value("subjectId").toString();
}
QJsonObject Token::toJSON() const {
QJsonObject json = Entity::toJSON();
json.value("tokenType") = tokenType;
json.value("tokenBits") = tokenBits;
json.value("tokenData") = tokenData;
json.value("validFrom") = validFrom;
json.value("validTo") = validTo;
json.value("timeToLive") = timeToLive;
json.value("authErrors") = authErrors;
json.value("flags") = QJsonArray::fromStringList(flags.toList());
json.value("subjectId") = subjectId.toString();
return json;
}
const QString &Token::getTokenType() const {
return tokenType;
}
void Token::setTokenType(const QString &tokenType) {
Token::tokenType = tokenType;
}
int Token::getTokenBits() const {
return tokenBits;
}
void Token::setTokenBits(int tokenBits) {
Token::tokenBits = tokenBits;
}
const QString &Token::getTokenData() const {
return tokenData;
}
void Token::setTokenData(const QString &tokenData) {
Token::tokenData = tokenData;
}
qint64 Token::getValidFrom() const {
return validFrom;
}
void Token::setValidFrom(qint64 validFrom) {
Token::validFrom = validFrom;
}
qint64 Token::getValidTo() const {
return validTo;
}
void Token::setValidTo(qint64 validTo) {
Token::validTo = validTo;
}
int Token::getTimeToLive() const {
return timeToLive;
}
void Token::setTimeToLive(int timeToLive) {
Token::timeToLive = timeToLive;
}
int Token::getAuthErrors() const {
return authErrors;
}
void Token::setAuthErrors(int authErrors) {
Token::authErrors = authErrors;
}
const QSet<QString> &Token::getFlags() const {
return flags;
}
void Token::setFlags(const QSet<QString> &flags) {
Token::flags = flags;
}
const QUuid &Token::getSubjectId() const {
return subjectId;
}
void Token::setSubjectId(const QUuid &subjectId) {
Token::subjectId = subjectId;
}

48
src/colnod/token.h Normal file
View File

@ -0,0 +1,48 @@
#ifndef COLNOD_CONNECTOR_TOKEN_H
#define COLNOD_CONNECTOR_TOKEN_H
#include "entity.h"
#include <QSet>
class Token : public Entity {
public:
// using Entity::Entity;
const QString &getTokenType() const;
void setTokenType(const QString &tokenType);
int getTokenBits() const;
void setTokenBits(int tokenBits);
const QString &getTokenData() const;
void setTokenData(const QString &tokenData);
qint64 getValidFrom() const;
void setValidFrom(qint64 validFrom);
qint64 getValidTo() const;
void setValidTo(qint64 validTo);
int getTimeToLive() const;
void setTimeToLive(int timeToLive);
int getAuthErrors() const;
void setAuthErrors(int authErrors);
const QSet<QString> &getFlags() const;
void setFlags(const QSet<QString> &flags);
const QUuid &getSubjectId() const;
void setSubjectId(const QUuid &subjectId);
void fromJSON(const QJsonObject &json) override;
QJsonObject toJSON() const override;
protected:
QString tokenType;
int tokenBits;
QString tokenData;
qint64 validFrom;
qint64 validTo;
int timeToLive;
int authErrors;
QSet<QString> flags;
QUuid subjectId;
};
#endif //COLNOD_CONNECTOR_TOKEN_H

View File

@ -1,5 +1,5 @@
{ {
"host": "https://localhost:8080", "host": "https://192.168.1.3",
"username": "spaceti", "username": "spaceti",
"password": "SuperSecretPassword" "password": "spaceti1"
} }

58
src/subjects.json Normal file
View File

@ -0,0 +1,58 @@
{
"items":[
{
"id":"6d809c12-3255-4b0a-bf8f-3af86912a40f",
"name":"Person2",
"description":"",
"lastUpdate":1543843828247,
"attributes":{
"items":{
}
},
"tokenFlags":[
"NoPin"
],
"pin":"",
"pinFlags":[
"Access"
]
},
{
"id":"1a23c502-1665-4492-94ea-039bb7505cae",
"name":"Person3",
"description":"",
"lastUpdate":1553868160516,
"attributes":{
"items":{
"email":"person3@gmail.com"
}
},
"tokenFlags":[
"NoPin"
],
"pin":"",
"pinFlags":[
"Access"
]
},
{
"id":"7ad58bd8-a1ec-40b4-a54f-347ee6a4ba29",
"name":"Person1",
"description":"",
"lastUpdate":1560786050717,
"attributes":{
"items":{
"email":"person1@gmail.com"
}
},
"tokenFlags":[
"NoPin"
],
"pin":"",
"pinFlags":[
"Access"
]
}
]
}

View File

@ -1,66 +1,175 @@
#include "unittest.h" #include "unittest.h"
void UnitTest::loginSuccessfully() void UnitTest::loginSuccessfully()
{ {
RequestManager* testAccess = new RequestManager(); RequestManager* testAccess = new RequestManager();
QJsonDocument config = testAccess->getConfig(); QJsonDocument config = testAccess->getConfig();
QSignalSpy spy(testAccess, SIGNAL(successLogin())); QSignalSpy spy(testAccess, SIGNAL(successLogin()));
testAccess->login(host, email, password); testAccess->login(host, email, password);
spy.wait(); spy.wait();
QVERIFY(spy.isValid()); QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1); QCOMPARE(spy.count(), 1);
QString json = testAccess->getResponse(); QString json = testAccess->getResponse();
qDebug() << json; qDebug() << json;
QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8());
QVERIFY2(doc["id"].isString(), "No parameter 'id' in response"); QVERIFY2(doc.object().value("id").isString(), "No parameter 'id' in response");
} }
//POST request w/o datas //POST request w/o datas
void UnitTest::getSubjects() void UnitTest::getSubjects()
{ {
RequestManager* testAccess = new RequestManager(); RequestManager* testAccess = new RequestManager();
testAccess->login(host, email, password); QSignalSpy spy(testAccess, SIGNAL(responseReady()));
QSignalSpy spy(testAccess, SIGNAL(responseReady())); testAccess->getRequest("/SubjectManager/getSubjects");
testAccess->getRequest("/SubjectManager/getSubjects"); spy.wait();
spy.wait(); QVERIFY(spy.isValid());
QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1);
QCOMPARE(spy.count(), 1); QString json = testAccess->getResponse();
QString json = testAccess->getResponse(); qDebug() << json;
QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8());
QVERIFY(doc.isObject()); QVERIFY(doc.isObject());
QVERIFY2(doc["items"].isArray(), "No parameter 'id' in response"); QVERIFY2(doc.object().value("items").isArray(), "No parameter 'id' in response");
qDebug() << doc["items"].toArray()[0].toObject()["id"].toString(); qDebug() << doc.object().value("items").toArray()[0].toObject()["id"].toString();
QVERIFY2(doc["items"].toArray()[0].toObject()["id"].isString(), "ada"); QVERIFY2(doc.object().value("items").toArray()[0].toObject()["id"].isString(), "ada");
} }
void UnitTest::getTokens() void UnitTest::getTokens()
{ {
RequestManager* testAccess = new RequestManager(); RequestManager* testAccess = new RequestManager();
testAccess->login(host, email, password); QSignalSpy spy(testAccess, SIGNAL(responseReady()));
QSignalSpy spy(testAccess, SIGNAL(responseReady())); testAccess->getRequest("/TokenManager/getTokens");
testAccess->getRequest("/TokenManager/getTokens"); QCOMPARE(spy.count(), 0);
QCOMPARE(spy.count(), 0); spy.wait();
spy.wait(); QVERIFY(spy.isValid());
QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1);
QCOMPARE(spy.count(), 1); qDebug() << testAccess->getResponse();
qDebug() << testAccess->getResponse(); }
}
void UnitTest::getTokensOpenManager()
void UnitTest::getTokensOpenManager() {
{ RequestManager* testAccess = new RequestManager();
RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->login(host, email, password); testAccess->getRequest("/OpenManager/getTokenSubject");
QSignalSpy spy(testAccess, SIGNAL(responseReady())); QCOMPARE(spy.count(), 0);
testAccess->getRequest("/OpenManager/getTokenSubject"); spy.wait();
QCOMPARE(spy.count(), 0); QVERIFY(spy.isValid());
spy.wait(); QCOMPARE(spy.count(), 1);
QVERIFY(spy.isValid()); QString response = testAccess->getResponse();
QCOMPARE(spy.count(), 1); qDebug() << response;
QString response = testAccess->getResponse(); QVERIFY(!response.isEmpty());
QVERIFY(!response.isEmpty()); }
qDebug() << response;
} void UnitTest::subjectJSONParser()
{
/*
QTEST_MAIN(UnitTest) QFile jsonData(QDir::current().filePath("subjects.json"));
if (!jsonData.open(QIODevice::ReadOnly)) {
qCritical() << "Couldn't open config file config.json" << QDir::current().filePath("subjects.json");
QCoreApplication::exit(-1);
return;
}
QJsonDocument doc = QJsonDocument::fromJson(jsonData.readAll());
QJsonObject obj = doc.object();
QJsonArray arr = obj["items"].toArray();
*/
QVERIFY(true);
return;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/SubjectManager/getSubjects");
spy.wait();
QString response = testAccess->getResponse();
QJsonDocument doc = QJsonDocument::fromJson(response.toUtf8());
QJsonArray arr = doc.object()["items"].toArray();
auto testSubject = new Subject();
testSubject->fromJSON(arr[1].toObject());
qDebug() << testSubject->getName() << " Size: " << arr.size();
QVERIFY(!testSubject->getName().isEmpty());
}
void UnitTest::tokenJSONParser()
{
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/TokenManager/getTokens");
spy.wait();
QString response = testAccess->getResponse();
//TODO
/* QJsonDocument doc = QJsonDocument::fromJson(response.toUtf8());
QJsonArray arr = doc.object()["items"].toArray();
auto testSubject = new Subject();
testSubject->fromJSON(arr[1].toObject());
qDebug() << testSubject->getName();
QVERIFY(!testSubject->getName().isEmpty());*/
QVERIFY(true);
}
void UnitTest::connectToDB()
{
DatabaseManager *db = new DatabaseManager("192.168.1.94", "deloitte", "postgres", "34rjkciea12");
QVERIFY(db->getOpened());
qDebug() << db->getTestMessage(1);
QVERIFY(true);
QCOMPARE(db->getTestMessage(1), QStringLiteral("Hello world"));
db->createTestRecord("Does it work?");
QCOMPARE(db->getTestMessage(2), QStringLiteral("Does it work?"));
}
void UnitTest::debugConnection()
{
QSslSocket ssl;// = new QSslSocket();
ssl.connectToHostEncrypted("192.168.1.3", 8443);
ssl.ignoreSslErrors();
if (!ssl.waitForEncrypted())
{
qDebug() << ssl.errorString();
}
QString tmp = "POST /AaaManager/authSession HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==\r\nUser-Agent: curl/7.65.3\r\nAccept: */*\r\nContent-Type: application/json\r\nContent-Length: 164\r\n\r\n{\"password\":\"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0\",\"username\":\"spaceti\"}";
/*POST /AaaManager/authSession HTTP/1.1
Host: localhost:8080
Authorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==
User-Agent: curl/7.65.3
Accept:
Content-Type: application/json
Content-Length: 164
{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}*/
qDebug() << tmp.toUtf8();
ssl.write(tmp.toUtf8());
QString data;
while (ssl.waitForReadyRead() && data.isEmpty())
{
data.append(ssl.readAll().data());
}
qDebug() << data;
int index = data.lastIndexOf("id");
QString tkn = data.mid( index + 5, 36);
tkn = tkn + ":";
qDebug() << "parsed token : " <<tkn;
/*
RequestManager* testAccess = new RequestManager();
QJsonDocument config = testAccess->getConfig();
QSignalSpy spy(testAccess, SIGNAL(successLogin()));
testAccess->login(host, email, password);
spy.wait();
QString token = testAccess->getToken();
token = token + ":";*/
tmp = "POST /SubjectManager/getSubjects\r\nHTTP/1.1 Host: 192.168.1.3:8443\r\nAuthorization: Basic " + tkn.toUtf8().toBase64() + "\r\nUser-Agent: curl/7.65.3\r\nAccept: */*)";
qDebug() << tmp.toUtf8();
ssl.write(tmp.toUtf8());
while (ssl.waitForReadyRead())
qDebug() << ssl.readAll().data();
QVERIFY(true);
}
QTEST_MAIN(UnitTest)

View File

@ -1,5 +1,5 @@
{ {
"host": "https://localhost:8080", "host": "https://192.168.1.3:8443",
"username": "spaceti", "username": "spaceti",
"password": "SuperSecretPassword" "password": "spaceti1"
} }

View File

@ -1,5 +1,6 @@
QT -= gui QT -= gui
QT += core sql network testlib QT += core sql network testlib
CONFIG += testcase # neccesary to have posibility to run: make check UnitTest
HEADERS += \ HEADERS += \
unittest.h unittest.h

View File

@ -1,26 +1,32 @@
#pragma once
#pragma once
#include <QtTest/QtTest>
#include <QSignalSpy> #include <QtTest/QtTest>
#include <requestmanager.h> #include <QSignalSpy>
#include <requestmanager.h>
#include "subject.h"
class UnitTest : public QObject #include "databasemanager.h"
{ #include <QSslSocket>
Q_OBJECT
private slots: class UnitTest : public QObject
{
void loginSuccessfully(); Q_OBJECT
private slots:
void getTokens();
void getTokensOpenManager(); void loginSuccessfully(); // /AaaManager/authSession
void getSubjects(); void getSubjects(); // /SubjectManager/getSubjects
void getTokens(); // /TokenManager/getTokens
private: void getTokensOpenManager(); // /OpenManager/getTokenSubject
// QString host = "https://localhost:8080"; //colnod server (ssh -L 8080:192.168.254.11:8443 penta-master) void subjectJSONParser();
QString host = "https://192.168.1.3:8443"; //local testing server void tokenJSONParser();
QString password = "spaceti1"; void connectToDB();
QString email = "spaceti"; void debugConnection();
};
private:
//QString host = "http://localhost:8080"; //colnod server (ssh -L 8080:192.168.254.11:8443 penta-master)
QString host = "https://192.168.1.3:8443"; //local testing server
QString password = "spaceti1";
QString email = "spaceti";
};