diff options
-rw-r--r-- | CHANGELOG-3.7.md | 5 | ||||
-rw-r--r-- | cpp/src/IceGrid/IceGridNode.cpp | 27 |
2 files changed, 32 insertions, 0 deletions
diff --git a/CHANGELOG-3.7.md b/CHANGELOG-3.7.md index 4ba699852ef..6d7aa76dcf2 100644 --- a/CHANGELOG-3.7.md +++ b/CHANGELOG-3.7.md @@ -62,6 +62,11 @@ These are the changes since Ice 3.7.2. ## C++ Changes +- Fixed bug where the `IceGrid.Registry.CryptPasswords` or + `IceGrid.Registry.AdminCryptPasswords` properties were ignored if the IceGrid + registry was collocated with the IceGrid node executable using the + `IceGrid.Node.CollocateRegistry` property. + - Removed IceStorm restriction where retryCount could only be used with two-way proxies. It's now possible to use it with one-way or batch proxies. diff --git a/cpp/src/IceGrid/IceGridNode.cpp b/cpp/src/IceGrid/IceGridNode.cpp index 9a96452a520..7a94afe0aae 100644 --- a/cpp/src/IceGrid/IceGridNode.cpp +++ b/cpp/src/IceGrid/IceGridNode.cpp @@ -753,6 +753,33 @@ NodeService::initializeCommunicator(int& argc, char* argv[], InitializationData initData = initializationData; initData.properties = createProperties(argc, argv, initData.properties); + // If IceGrid.Registry.[Admin]PermissionsVerifier is not set and + // IceGrid.Registry.[Admin]CryptPasswords is set, load the + // Glacier2CryptPermissionsVerifier plug-in + // + vector<string> vTypes; + vTypes.push_back(""); + vTypes.push_back("Admin"); + + for(vector<string>::const_iterator p = vTypes.begin(); p != vTypes.end(); ++p) + { + string verifier = "IceGrid.Registry." + *p + "PermissionsVerifier"; + + if(initData.properties->getProperty(verifier).empty()) + { + string cryptPasswords = initData.properties->getProperty("IceGrid.Registry." + *p + "CryptPasswords"); + + if(!cryptPasswords.empty()) + { + initData.properties->setProperty("Ice.Plugin.Glacier2CryptPermissionsVerifier", + "Glacier2CryptPermissionsVerifier:createCryptPermissionsVerifier"); + + initData.properties->setProperty("Glacier2CryptPermissionsVerifier.IceGrid.Registry." + *p + + "PermissionsVerifier", cryptPasswords); + } + } + } + // // Never create Admin object in Ice.Admin adapter // |