Code:
<bean
id="initialDirContextFactory"
class="org.acegisecurity.providers.ldap.DefaultInitialDirContextFactory">
<constructor-arg value="ldap://myoracle.server:389/dc=company,dc=com" />
</bean>
<bean
id="ldapAuthenticationProvider"
class="org.acegisecurity.providers.ldap.LdapAuthenticationProvider">
<constructor-arg>
<bean
class="org.acegisecurity.providers.ldap.authenticator.BindAuthenticator">
<constructor-arg>
<ref local="initialDirContextFactory" />
</constructor-arg>
<property name="userDnPatterns">
<list>
<value>cn={0},cn=Users</value>
</list>
</property>
</bean>
</constructor-arg>
<constructor-arg>
<bean
class="org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator">
<constructor-arg>
<ref local="initialDirContextFactory" />
</constructor-arg>
<constructor-arg>
<value>cn=groups</value>
</constructor-arg>
<property name="convertToUpperCase">
<value>true</value>
</property>
<property name="groupSearchFilter">
<value>(uniquemember={0})</value>
</property>
<property name="groupRoleAttribute">
<value>cn</value>
</property>
<property name="rolePrefix">
<value></value>
</property>
</bean>
</constructor-arg>
</bean>
The DN of a group is like cn=APPNAME_ROLE,cn=GROUPS,dc=company,dc=com.
Again rolePrefix is unneccessary in this context.
You can refine the groupSearchFilter e.g. (&(objectclass=groupOfUniqueNames)(uniqueMember={0 }))
Again configuration was easy and works flawlessly.