Commit Graph

59 Commits

Author SHA1 Message Date
Julius Pfrommer 5e7f04b71b Merge remote-tracking branch 'origin/1.4' into merge_14_master_25 2024-12-07 22:55:41 +01:00
Sebastian Goll 0cc73feb09 fix(plugin): fix clearing previous plugin in UA_AccessControl_default() 2024-11-26 20:54:02 +01:00
Julius Pfrommer 2babcfc85e fix(plugins): Correct String/ByteString mixups 2024-10-09 06:52:02 +02:00
Noel Graf 579d51f75b feat(server): Define the CertificateGroup interface and enable gds push management capabilities in the server information model. 2024-02-23 11:37:52 +01:00
Julius Pfrommer 0271f50579 refactor(server): Only use logging-pointer instead of inline structure
We could not adjust all pointers when moving the config "into" the
server.
2023-11-10 08:38:53 +01:00
Noel Graf 6e7a851c68 feat(server): Automatic creation of all user token policies for all defined policies in the SecureChannel in AccessControl. 2023-10-30 21:58:38 +01:00
Noel Graf c1b6936b6b fix(server): Bug fixes in the subscription transfer service. 2023-10-26 12:50:39 +02:00
Julius Pfrommer 0b33021dce feat(server): Only allow subscription transfer if the same user was used 2023-10-25 12:31:03 +02:00
Julius Pfrommer 629fefdd28 refactor(plugins): Cosmetic cleanup in AccessControl plugin 2023-10-07 23:07:54 +02:00
Julius Pfrommer e4e865d999 Merge remote-tracking branch 'origin/1.3' into merge_13_14_5 2023-10-07 21:45:52 +02:00
Alexander Bluhm f4b481276a feat(plugin): allow custom password validation
Username password validation in access control plugin allows only
passwords stored in plaintext.  Add a callback to implement custom
validation.  This allows salted password hashes and timing safe
comparison in the server.  Furthermore remote validation could be
implemented.  The new function UA_AccessControl_defaultWithLoginCallback()
calls existing UA_AccessControl_default() and after that installs
the given UA_UsernamePasswordLoginCallback with context.
2023-09-28 12:50:19 +02:00
Julius Pfrommer b1198f814d fix(core): Make PolicyIds unique by appending the security mode 2023-07-19 12:44:46 +02:00
Julius Pfrommer 2d9bf66e15 feat(server): Use dedicate PKI for SecureChannel and Session certificates 2023-06-27 07:17:46 +02:00
Julius Pfrommer 36b3012358 fix(plugins): Return UA_STATUSCODE_BADIDENTITYTOKENREJECTED if Session certificate is invalid 2023-06-27 07:17:46 +02:00
Julius Pfrommer 525aa31279 fix(plugin): Sessions can be (re)activated with different credentials
The CTT require this behavior.
2023-06-26 13:27:18 +02:00
Julius Pfrommer 6d56ab5a8f feat(plugin): An existing Session can only be re-activated with the same UserIdentityToken 2023-06-01 23:20:31 +02:00
Andreas Eckerstorfer 27141b0351 fix(plugin): Use pointer to logging pointer in certificate verification
The logger must be up to date in the certificate verification plugin, even it
is changed in the server/client config.
By using the pointer to the logging pointer it can still be used after an update
in the certificat verification pluglin.
2023-02-01 07:54:49 +01:00
Andreas Eckerstorfer b51b9bd228 feat(plugin): Use server and client logger for crypto plugins 2023-01-17 15:09:44 +01:00
Andreas Eckerstorfer 13af9b8688 refactor(core): Remove trailing spaces in code (#5221) 2022-06-24 11:03:25 +02:00
Julius Pfrommer 4bec119605 fix(plugin): Define the SecurityPolicyUri for the x509 UserTokenPolicies 2021-12-09 15:37:39 +01:00
Julius Pfrommer 9ee1ffe96d fix(plugin): Define the SecurityPolicyUri for the x509 UserTokenPolicies 2021-12-04 01:01:30 +01:00
Julius Pfrommer 2c87f1ed06 feat(server): Enable x509 certificate authentication in the server config 2021-09-24 03:16:20 +02:00
Nils afb74a26f9 fix(server): Fix memory leaks detected by AddressSanitizer. (#4308)
* Fix memory leak detected by AddressSanatizer

When calling UA_AccessControl_default, new memory is
allocated, but before that it is not checked if memory has
already been allocated elsewhere for the UA_AccessControl struct.
Therefore, it must be ensured that the UA_AccessControl is clean
at the beginning.

* Fix memory leak detected by AddressSanatizer

It occurs when string IDs are used when creating
child nodes. If this is the case, the NodeId must be cleaned up
2021-04-09 09:24:52 +02:00
Julius Pfrommer c203430d16 refactor(plugins): Use _clear instead of _deleteMembers 2020-10-18 15:21:40 +02:00
Julius Pfrommer 3b88100d3d feat(server): Implement TransferSubscriptions service 2020-08-24 18:24:52 +02:00
Julius Pfrommer 5ac30c5c1d feat(plugin): Warn if the default AccessControl plugin is used 2020-07-10 00:32:19 +02:00
Julius Pfrommer 8033f1596d refactor(server): Fold server_config.h into server.h 2020-07-03 23:26:23 +02:00
Jonas Green 632d490d6d Added copyright notices for HMS Industrial Networks contributions (#3458) 2020-02-25 14:40:07 +01:00
Jonas Green 63d65e0ebf feat(server): Extended the access control plugin with check for browsing nodes
The PermissionType (Part 3) defines 17 permissions. Currently the
access control plugin can control all but 2 of them. Those are browse
and ReceiveEvents. This change adds check for browse permission of
nodes.
2020-02-21 18:27:21 +01:00
Stefan Profanter f05bafc25d fix: Accesscontrol clear check for valid memory 2019-10-14 15:59:05 +02:00
Julius Pfrommer afe1f3d98e refactor(core): Rename deleteMembers to clear in UA_AccessControl 2019-10-03 15:14:24 +02:00
Julius Pfrommer 85c4d53b1c Config: Configure the UserTokenPolicy; Warn if password is unencrypted 2019-06-23 19:39:57 +02:00
Jonas Green 5d375771aa Security: Added support for server to decrypt passwords
The password is decrypted by the server implementation before calling
the access control plugin.
2019-06-23 19:39:57 +02:00
Stefan Profanter 6fe8453249 Untabify
Used command:
`find . \( -name '*.c' -o -name '*.h' \) -not \( -path "./deps/*" -prune \) ! -type d -exec bash -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;`
2019-05-25 09:09:46 +02:00
Stefan Profanter d31ae132ad Stack: Avoid double free/heap use after free
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14567

Credit to oss-fuzz
2019-05-07 07:05:31 +02:00
Julius Pfrommer c9c818868f Move header files to a more unix-like structure
This commit drops the 'ua_' prefix and changes the public includes
to the form `#include <open62541/server.h>` instead of the old
`#include <ua_server.h>`
2019-03-21 20:16:31 +01:00
Julius Pfrommer 6c0442ee6d Server: Make Historizing method conditional on build flags (fix amalgamation) 2019-02-01 09:02:13 +01:00
Peter Rustler a4c968f4c6 server_history_update: Add access control to alter historical data. 2019-01-30 17:36:23 +01:00
Stefan Profanter 4b7c5c251c Stack: Fix OOM check for access control
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11506

Credit to oss-fuzz
2018-11-30 08:49:51 +01:00
Julius Pfrommer 0afd439a21 AccessControl: Forward endpoint information and the remote certificate
for the SecureChannel to the AccessControl plugin for session
authentication
2018-07-03 00:12:53 +02:00
Alexander Schrode e447dc5b6e Fixed Typos 2018-04-04 16:21:00 +02:00
Alexander Schrode 560f685ff9 AccessControlContext not initialized
When calling UA_AccessControl_default with no username password (usernamePasswordLoginSize = 0) context->usernamePasswordLoginSize is not initialized. This causes a crash when deleteMembers_default is called.
2018-04-04 16:21:00 +02:00
Julius Pfrommer 67cbd86018 Set the correct copyright for @jpfr 2018-03-23 12:40:43 +01:00
Julius Pfrommer 23ced3c832 Interpret empty UserIdentityToken as anonymous login 2018-03-10 17:37:33 +01:00
Julius Pfrommer 32bf04e672 Don't encrypt username/password over an already encrypted SecureChannel 2018-03-10 15:52:00 +01:00
Julius Pfrommer 34cff1d606 Add a context for the AccessControl plugin 2018-03-06 12:49:17 +01:00
Stefan Profanter c2305461a3 Copyright holders at beginning of file (#1514)
* New script to add copyright names (see #1456)

* Use file history instead of git blame

* Order authors by first commit and modify displayed names

* fixup

* Add generated copyright holders
2018-01-26 14:14:25 +01:00
StalderT 7332a100ee remove unneeded whitespaces (#1552)
* remove unneeded whitespaces

* fix generate_datatypes.py
2018-01-26 14:12:36 +01:00
Mark 8753f464a1 improve code docs in ua_accesscontrol_default.c 2018-01-17 15:05:00 +01:00
Julius Pfrommer 394df3be8d finish nodeContext pointer for every node 2017-08-18 15:00:00 +02:00