[ZBX-22613] API method "script.execute" fails if authorized by token Created: 2023 Mar 29 Updated: 2024 Jun 19 Resolved: 2023 Aug 14 |
|
Status: | Closed |
Project: | ZABBIX BUGS AND ISSUES |
Component/s: | API (A) |
Affects Version/s: | 6.0.17, 6.2.8, 6.4.2 |
Fix Version/s: | 6.0.21rc1, 6.4.6rc1, 7.0.0alpha4, 7.0 (plan) |
Type: | Problem report | Priority: | Major |
Reporter: | Konstantin | Assignee: | Elina Pulke (Inactive) |
Resolution: | Fixed | Votes: | 0 |
Labels: | None | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Issue Links: |
|
||||||||
Team: | |||||||||
Sprint: | Sprint 102 (Jul 2023), Sprint 103 (Aug 2023) | ||||||||
Story Points: | 0.5 |
Description |
Steps to reproduce:
Result: Error in nginx logs on server: 2023/03/30 01:43:21 [error] 818#818: *588901 FastCGI sent in stderr: "PHP message: PHP Warning: Undefined array key "sessionid" in /usr/share/zabbix/include/classes/api/services/CScript.php on line 941PHP message: PHP Fatal error: Uncaught TypeError: CZabbixServer::executeScript(): Argument #2 ($sid) must be of type string, null given, called in /usr/share/zabbix/include/classes/api/services/CScript.php on line 943 and defined in /usr/share/zabbix/include/classes/server/CZabbixServer.php:153 Stack trace: #0 /usr/share/zabbix/include/classes/api/services/CScript.php(943): CZabbixServer->executeScript() #1 /usr/share/zabbix/include/classes/api/clients/CLocalApiClient.php(121): CScript->execute() #2 /usr/share/zabbix/include/classes/core/CJsonRpc.php(75): CLocalApiClient->callMethod() #3 /usr/share/zabbix/api_jsonrpc.php(63): CJsonRpc->execute() #4 {main} Expected: |
Comments |
Comment by Konstantin [ 2023 Mar 29 ] |
Patch: diff --git a/ui/include/classes/api/services/CScript.php b/ui/include/classes/api/services/CScript.php index e5d676e887..1490fa01e6 100644 --- a/ui/include/classes/api/services/CScript.php +++ b/ui/include/classes/api/services/CScript.php @@ -1047,7 +1047,7 @@ class CScript extends CApiService { timeUnitToSeconds(CSettingsHelper::get(CSettingsHelper::CONNECT_TIMEOUT)), timeUnitToSeconds(CSettingsHelper::get(CSettingsHelper::SCRIPT_TIMEOUT)), ZBX_SOCKET_BYTES_LIMIT ); - $result = $zabbix_server->executeScript($data['scriptid'], self::$userData['sessionid'], + $result = $zabbix_server->executeScript($data['scriptid'], self::$userData['sessionid'] ?? self::$userData['token'], $is_event ? null : $data['hostid'], $is_event ? $data['eventid'] : null ); diff --git a/ui/include/classes/api/services/CUser.php b/ui/include/classes/api/services/CUser.php index 4256db6a45..9ffc18ce18 100644 --- a/ui/include/classes/api/services/CUser.php +++ b/ui/include/classes/api/services/CUser.php @@ -1752,6 +1752,8 @@ class CUser extends CApiService { } if ($token !== null) { + $db_user['token'] = $token; + // Check permissions. if ($permissions['users_status'] == GROUP_STATUS_DISABLED || $db_user['deprovisioned']) { self::exception(ZBX_API_ERROR_NO_AUTH, _('Not authorized.')); |
Comment by Elina Pulke (Inactive) [ 2023 Jul 25 ] |
Fixed in development branch feature/ZBX-22613-6.0 and feature/ZBX-22613-6.4. |
Comment by Elina Pulke (Inactive) [ 2023 Aug 03 ] |
Fixed in:
|