You might have to provide your own providers for that level of customisation and set Openfire properties to point to your custome code
provider.admin.className = xx.xx.xx.AdminProvider
provider.auth.className = xx.xx.xx.AuthProvider
provider.group.className = xx.xx.xx.GroupProvider
provider.user.className = xx.xx.xx.UserProvider
You might be able to use these properties to point at the standard LDAP auth provider and then point at the standard JDBC user and group providers. Never tried it, but it might work