mirror of
https://gitlab.com/virt-viewer/virt-viewer.git
synced 2025-01-18 06:03:43 +03:00
ovirt: Use sso-token when set in .vv file
Starting with oVirt 4.0, this replaces the jsessionid field for automatic authentication with oVirt instances for REST communication.
This commit is contained in:
parent
c904b1c63a
commit
4f37332940
@ -309,8 +309,15 @@ GUID of the oVirt virtual machine to connect to.
|
||||
|
||||
=item C<jsessionid> (string)
|
||||
|
||||
Value to set the 'jsessionid' cookie to. Setting this authentication cookie to a valid value
|
||||
will allow to interact with the oVirt REST API without being asked for credentials.
|
||||
Value to set the 'jsessionid' cookie to. With oVirt 3.6, setting this
|
||||
authentication cookie to a valid value will allow to interact with the oVirt
|
||||
REST API without being asked for credentials.
|
||||
|
||||
=item C<sso-token> (string)
|
||||
|
||||
Value to set the 'Authorization' header to. With oVirt 4.0 or newer, setting
|
||||
this authentication header to a valid value will allow to interact with the
|
||||
oVirt REST API without being asked for credentials.
|
||||
|
||||
=item C<ca> (string)
|
||||
|
||||
|
@ -834,6 +834,7 @@ OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *file)
|
||||
gboolean admin;
|
||||
char *ca_str = NULL;
|
||||
char *jsessionid = NULL;
|
||||
char *sso_token = NULL;
|
||||
char *url = NULL;
|
||||
char *vm_guid = NULL;
|
||||
GByteArray *ca = NULL;
|
||||
@ -841,15 +842,22 @@ OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *file)
|
||||
url = virt_viewer_file_get_ovirt_host(file);
|
||||
vm_guid = virt_viewer_file_get_ovirt_vm_guid(file);
|
||||
jsessionid = virt_viewer_file_get_ovirt_jsessionid(file);
|
||||
sso_token = virt_viewer_file_get_ovirt_sso_token(file);
|
||||
ca_str = virt_viewer_file_get_ovirt_ca(file);
|
||||
admin = virt_viewer_file_get_ovirt_admin(file);
|
||||
|
||||
if ((url == NULL) || (vm_guid == NULL) || (jsessionid == NULL)) {
|
||||
g_debug("ignoring [ovirt] section content as URL, VM GUID or jsessionid"
|
||||
if ((url == NULL) || (vm_guid == NULL)) {
|
||||
g_debug("ignoring [ovirt] section content as URL, VM GUID"
|
||||
" are missing from the .vv file");
|
||||
goto end;
|
||||
}
|
||||
|
||||
if ((jsessionid == NULL) && (sso_token == NULL)) {
|
||||
g_debug("ignoring [ovirt] section content as jsessionid and sso-token"
|
||||
" are both missing from the .vv file");
|
||||
goto end;
|
||||
}
|
||||
|
||||
proxy = ovirt_proxy_new(url);
|
||||
if (proxy == NULL)
|
||||
goto end;
|
||||
@ -861,9 +869,19 @@ OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *file)
|
||||
|
||||
g_object_set(G_OBJECT(proxy),
|
||||
"admin", admin,
|
||||
"session-id", jsessionid,
|
||||
"ca-cert", ca,
|
||||
NULL);
|
||||
if (jsessionid != NULL) {
|
||||
g_object_set(G_OBJECT(proxy),
|
||||
"session-id", jsessionid,
|
||||
NULL);
|
||||
}
|
||||
if (sso_token != NULL) {
|
||||
g_object_set(G_OBJECT(proxy),
|
||||
"sso-token", sso_token,
|
||||
NULL);
|
||||
}
|
||||
|
||||
menu = g_object_new(OVIRT_TYPE_FOREIGN_MENU,
|
||||
"proxy", proxy,
|
||||
"vm-guid", vm_guid,
|
||||
@ -873,6 +891,7 @@ end:
|
||||
g_free(url);
|
||||
g_free(vm_guid);
|
||||
g_free(jsessionid);
|
||||
g_free(sso_token);
|
||||
g_free(ca_str);
|
||||
if (ca != NULL) {
|
||||
g_byte_array_unref(ca);
|
||||
|
Loading…
x
Reference in New Issue
Block a user