Decrypt account and domain configurations when needed#9088
Conversation
|
@blueorangutan package |
|
@BryanMLima a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 4.19 #9088 +/- ##
============================================
- Coverage 14.96% 14.96% -0.01%
+ Complexity 10995 10985 -10
============================================
Files 5373 5373
Lines 469024 469036 +12
Branches 58818 60591 +1773
============================================
- Hits 70197 70172 -25
- Misses 391056 391096 +40
+ Partials 7771 7768 -3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
Packaging result [SF]: ✔️ el7 ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 9624 |
|
thanks @BryanMLima |
@weizhouapache, yes, an exception will be thrown as ACS will try to decrypt a plain value. Therefore, users that changed to a plain value will need to manually update the password, via CloudMonkey, for example. |
thanks for the clarification @BryanMLima |
Sure, no problem, I added in the description of the PR. The same instructions could be present in the release notes when upgrading to version |
|
@blueorangutan package |
|
@weizhouapache a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el7 ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 9648 |
|
@blueorangutan test |
|
@weizhouapache a [SL] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
I think we need to add this to the release notes @BryanMLima |
DaanHoogland
left a comment
There was a problem hiding this comment.
clgtm, would these constructs have to be added to other scopes as well? i.e. move the code to the GenercDaoBase !?
|
[SF] Trillian test result (tid-10233)
|
Currently, there is no need, as the changes are only in respect to the removal of the |
|
@blueorangutan test rocky8 kvm-rocky8 |
|
@weizhouapache a [SL] Trillian-Jenkins test job (rocky8 mgmt + kvm-rocky8) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-10256)
|
|
@blueorangutan package |
|
@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el7 ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 9763 |
|
@blueorangutan test alma9 kvm-alma9 |
|
@DaanHoogland a [SL] Trillian-Jenkins test job (alma9 mgmt + kvm-alma9) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-10333)
|
borisstoyanov
left a comment
There was a problem hiding this comment.
LGTM, couldn't test it locally but I'm happy with your testing @BryanMLima, would it be possible to document the changes in a doc-pr?
https://github.com/apache/cloudstack-documentation
@borisstoyanov, thanks for the review. Regarding the doc-pr, you mean creating instructions for the release notes, right? |
Don't want to talk before my turn @BryanMLima , but yes, I am pretty sure that is what he means. |
Description
This PR fixes an issue when using the LDAP integration with ACS. PR #6812 normalized the account and domain configurations to only encrypt the values with configurations in the
HiddenandSecurecategories. However, that PR failed to address the use of these configurations. This resulted in using the encrypted value of the configuration, when it should decrypt it first, as observed in issue #8637.This problem was fixed by adding the method
getActualValue()that checks if the configurations in the Account and Domain are in theHiddenandSecurecategories, and decrypting it, if needed.NOTE: For users that manually set the configurations
ldap.bind.passwordandldap.truststore.passwordto a plain value in order to fix the faulty behaviour, it is required to store them encrypted. It will not be possible to update the configuration via UI, as an exception will be thrown when ACS tries to decrypt the plain value. To fix this, it is required to set the password again for ACS to encrypt it. There are two options:update configuration domainid=<domain-uuid> name="ldap.bind.password" value="password";DELETE from cloud.domain_details WHERE name like "%ldap%password%", and setting the configuration via UI for the affected domains.Fixes #8637
Types of changes
Feature/Enhancement Scale or Bug Severity
Bug Severity
How Has This Been Tested?
In a lab with version 4.19.0 installed, I configured an LDAP server and tried to create and LDAP account, which resulted in the following error
LDAP: error code 49 - Invalid Credentials. After applying the changes in this patch, no exception was thrown, and the accounts in the LDAP server were correctly listed.