In setup, some of the host settings are loaded from XML properties specified in openfire.xml, while others are incorrectly loaded from whats currently in JiveGlobals. Since we are in setup mode, JiveGlobals.getProperty returns null thereby ignoring any property overrides in openfire.xml specified by the user.
Fixes:
1. Instead of just blindly setting anonymous auth to true, check if user has an override property in XML configuration, if not, default to true.
2. Call getXMLProperty to load user configuration override values and not what is currently in JiveGlobals. During setup mode, this is always null.
3. Instead of setting default values for auth, user, group, card, lockout, securityAudit and admin class names, check if the user has provided overrides for those properties, and if so, use those, otherwise use defaults.
4. Expose a method to retrieve XML property names, and then in finishSetup, go through the rest of the XML properties overridden by user that were not touched by setup and individually set those. This is particularly useful when users have to specify primary and secondary * hybrid providers.
You can see the fixes at https://github.com/sdebnath/Openfire/commit/04247a0b4bd74b7acd6127559be09a1b851b 7330. Will create a pull request once my other pull request (https://github.com/igniterealtime/Openfire/pull/60)is approved/rejected.
Looking forward to the feedback.
Thanks,
Shawn