Commit graph

43 commits

Author SHA1 Message Date
Roger A. Light
4199e7b2d3 Move control functions to common, and use in the broker. 2022-12-31 14:34:26 +00:00
Roger A. Light
611c43e537 Dynsec: Save file at end of command batch, not after each command 2022-12-27 08:16:41 +00:00
Roger A. Light
fd68bf00c7 Merge branch 'master' into develop 2022-08-17 16:18:24 +01:00
Roger A. Light
ba13edc6a4 dynsec: Forbid deleting the anon group. 2022-08-17 12:10:24 +01:00
Roger A. Light
4d1b587e29 dynsec: Forbid deleting the anon group. 2022-08-16 12:55:48 +01:00
Roger A. Light
436f0b9348 dynsec: Fix modifyClient and modifyGroup commands
They will now not modify the client/group if a new group/client being
added is not valid, or on other failures.

Closes #2598. Thanks to Sebastian Szczepański.
2022-08-16 00:48:02 +01:00
Roger A. Light
7794001ce2 Don't free arrays. 2022-08-07 08:24:34 +01:00
Roger A. Light
832e51cb57 dynsec: reduce memory allocations 2022-08-05 13:08:55 +01:00
Roger A. Light
5279a424b1 Dynsec: Kick clients in tick event rather than immediately
This means that PUBACK/PUBREC should be sent to clients that modify
their own roles.

Closes #2474. Thanks to Stefano Berlato.
2022-03-12 23:16:57 +00:00
Roger A. Light
0deaae286e NULL after freeing. 2022-03-09 01:33:23 +00:00
Roger A. Light
8d073771c3 Make some plugin code shared for future use. 2022-02-03 23:08:28 +00:00
Roger A. Light
d032c94d14 Remove global vars. 2022-02-03 21:50:20 +00:00
Roger A. Light
11c5cf039f Simplify memory use for dynsec. 2022-01-27 16:09:09 +00:00
Roger Light
cd07f1136b Bump copyrights. 2021-11-03 22:10:06 +00:00
Roger A. Light
a4389fc9ce Fix SPDX identifiers: EDL-1.0 -> BSD-3-Clause.
The two licenses are the same.
2021-01-20 11:46:18 +00:00
Roger A. Light
5927778ae5 Improve logging in dynsec addGroupClient command.
Closes #2008. Thanks to Willem Eradus.
2021-01-11 13:28:20 +00:00
Roger Light
c4f4fae5a0 dynsec: Improve logging in addGroupRole.
Close #2005. Thanks to Willem Eradus.
2021-01-10 23:04:01 +00:00
Roger A. Light
370cec5edd Fixes for lots of minor build warnings highlighted by Visual Studio. 2021-01-09 21:06:08 +00:00
Roger Light
7e1a818c54 Fix invalid behaviour in dynsec plugin.
This occurred if a group or client was deleted before a role that was
attached to the group or client is deleted.

Closes #1998. Thanks to Willem Eradus.
2021-01-08 00:01:10 +00:00
Roger A. Light
791c63372b Fix cjson include paths. 2020-12-04 22:15:19 +00:00
Roger A. Light
3731535298 Add SPDX license identifiers. 2020-12-01 20:46:56 +00:00
Roger A. Light
692fa5537d dynsec: Reply with error on add role fail. 2020-11-30 10:32:09 +00:00
Roger A. Light
0605fd402a dynsec: Command logging. 2020-11-30 10:10:12 +00:00
Roger A. Light
c303c67461 dynsec: Return group not found on getGroup. 2020-11-28 00:34:53 +00:00
Roger A. Light
423e1a00d2 dynsec: Tests for group commands with invalid params, plus fixes. 2020-11-28 00:01:58 +00:00
Roger A. Light
ba8e888e41 dynsec: Refactor some cJSON adding code to reduce redundancy 2020-11-26 14:49:28 +00:00
Roger A. Light
c1489fc704 dynsec: Refactor duplicate group kick code. 2020-11-26 11:54:30 +00:00
Roger A. Light
584cf51ba7 Update to EPL-2.0 2020-11-25 17:34:21 +00:00
Roger A. Light
d1bf2c0d13 dynsec: Fix missing correlationData for getDefaultACLAccess. 2020-11-23 14:06:19 +00:00
Roger A. Light
7791d882c2 dynsec: Allow empty anonymous group. 2020-11-20 23:46:43 +00:00
Roger A. Light
5314bae1e2 dynsec: getAnonymousGroup should include correlation data in response. 2020-11-20 13:56:57 +00:00
Roger A. Light
4f9fe4df4d dynsec: Rolelist as own file for consistency. 2020-11-18 11:54:13 +00:00
Roger A. Light
fe436cda95 dynsec: Fix potential grouplist leaks. 2020-11-18 11:46:23 +00:00
Roger A. Light
20bf6e706e dynsec: Fix role clientlists not being freed. 2020-11-18 11:46:23 +00:00
Roger A. Light
67fbe5cc7e dynsec: Fix some keys being accessed even if they don't exist. 2020-11-18 09:34:28 +00:00
Roger A. Light
95139cccff Dynsec: If priority is equal when ordering, use group/role name as well. 2020-11-05 12:23:53 +00:00
Roger A. Light
801e31efda Dynsec: Validate user/group/role names as UTF-8. 2020-11-04 13:32:27 +00:00
Roger A. Light
3486f0e546 Dynsec: Kick affected clients on role change. 2020-11-04 10:18:30 +00:00
Roger A. Light
bb840ed55b Conversion fixes. 2020-11-03 10:09:18 +00:00
Roger A. Light
5b28fac61d Dynsec: Kick clients on access changes
This works in the following circumstances:

* client is deleted
* client is modified
* client has role added
* client has role removed
* group is deleted
* group is modified
* group has role added
* group has role removed
* group has client added
* group has client removed
* anonymous group is changed

The following circumstances are not yet fixed:

* role is deleted
* role is modified
* role has ACL added
* role has ACL removed
2020-10-30 12:35:02 +00:00
Roger A. Light
30bf47b0d1 Fix printing of ints in dynsec json. 2020-10-29 23:51:32 +00:00
Roger A. Light
df30b6c9d4 Dynsec: add getAnonymousGroup and getDefaultACLAccess commands 2020-10-29 11:38:34 +00:00
Roger A. Light
fdff255916 New dynamic security plugin. 2020-10-27 00:54:55 +00:00