close

Filter

loading table of contents...

Release Notes / Version 10.2107

Table Of Contents

Spring ConfigurationProperties for UserProvider

Spring ConfigurationProperties for UserProvider

The configuration for UserProviders used to reside in a separate file, typically named jndi-\*.properties . Now, the configuration has been migrated to Spring ConfigurationProperties , which simplifies deployment. The contentserver configuration already had a (List-valued) subgroup cap.server.ldap with two properties, provider-class and properties . cap.server.ldap has been renamed to cap.server.userproviders and features all the options you know from the old jndi-*.properties files, or from the property name constants in LdapUserProvider . Thus, you can configure a UserProvider completely in one place. The minimal configuration for a standard ActiveDirectoryUserProvider looks like this now:

cap.server.userproviders[0].provider-class=com.coremedia.ldap.ad.ActiveDirectoryUserProvider
cap.server.userproviders[0].java.naming.security.principal=CN=Administrator,CN=Users,DC=acme,DC=com
cap.server.userproviders[0].java.naming.security.credentials=secret
cap.server.userproviders[0].ldap.host=activedirectory.acme.com
cap.server.userproviders[0].ldap.base-distinguished-names[0]=CN=Users,DC=acme,DC=com

As you can see from the prefix, the properties have been renamed, and the property name constants in LdapUserProvider have been deleted. See the ConfigurationProperties class com.coremedia.ldap.LdapUserProviderConfigurationProperties for the new property names (you will easily recognize them), and com.coremedia.ldap.JndiConfigurationProperties for the supported java.naming properties.

Moreover, there is a generic Map-valued property cap.server.userproviders#.properties which can be used for (custom) properties that are not modeled explicitly by the ConfigurationProperties classes. In particular, you can use this Map to set additional java.naming properties that are not covered by com.coremedia.ldap.JndiConfigurationProperties , and the LdapUserProvider will propagate them to the JNDI framework. In application.properties notation, it would look like this:

cap.server.userproviders[0].properties[java.naming.language]=en

LdapUserProvider and some subclasses had a constructor that took the jndi-\*.properties file as argument. These constructors have been deleted. They have never been used anyway, and they do not make sense any longer, since we abandoned the jndi-\*.properties files. If you have overridden this constructor in your own UserProvider, just delete it. Only the (implicit) NoArg constructor is used. The signature of UserProvider#initialize has changed: The argument used to be the jndi-\*.properties file URL, now it is the Map of generic properties mentioned above.

(CMS-16842)

Search Results

Table Of Contents