summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceGrid/IceGridNode.cpp27
1 files changed, 27 insertions, 0 deletions
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
//