Последний раз я добавил к нашему проекту еще одного поставщика аутентификации для аутентификации пользователя через окна активного сервера каталогов:Интеграция тестирования с ActiveDirectoryLdapAuthenticationProvider
<security:authentication-manager id="authenticationManager" erase-credentials="true">
<security:authentication-provider ref="ldapActiveDirectoryAuthProvider" />
<security:authentication-provider ref="authenticationProvider1"/>
<security:authentication-provider ref="authenticationProvider2"/>
</security:authentication-manager>
<bean id="customLdapUserDetailsMapper" class="security.authentication.customLdapUserDetailsMapper">
</bean>
<bean id="ldapActiveDirectoryAuthProvider" class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="my.domain"/>
<constructor-arg value="ldap://my.custom.host:389" />
<property name="useAuthenticationRequestCredentials" value="true" />
<property name="convertSubErrorCodesToExceptions" value="true" />
<property name="userDetailsContextMapper" ref="customLdapUserDetailsMapper" />
</bean>
Alsmost работать отлично, за исключением существующих интеграционных тестов, которые работают с потоком аутентификации , А именно, каждый тест пытался подключиться к серверу, когда ActiveDirectoryLdapAuthenticationProvider.bindAsUser затем не удалось, потому что my.custom.host не доступен для этого типа теста.
Я начал прибегая к помощи для того, чтобы найти какой-то макет для этого типа теста, но, к сожалению, я нашел только этот пост Integration tests with spring-security and ldap где Люк Тейлор рекомендуется использовать существующие интеграционные тесты в качестве руководства. Я изучил его, но он не содержит тестов для этого типа провайдера.
Я новичок в таких вещах, и был бы хорошо, чтобы знать следующие вещи:
- Будет ли это правильным для повторного использования каких-либо образом этого подхода
new ApacheDSContainer("dc=springframework,dc=org", "classpath:test-server.ldif");
, который был упомянут в тесте интеграции LDAP (I я не уверен, что он подходит для меня, потому что я не создавал ldap ebbedded ldap-сервер в моем контексте приложения и не указывал никаких .ldif-файлов в указанной конфигурации, а также). - Адрес, через который вы можете быть отправлены.