2015-02-05 6 views
4

Последний раз я добавил к нашему проекту еще одного поставщика аутентификации для аутентификации пользователя через окна активного сервера каталогов:Интеграция тестирования с 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 где Люк Тейлор рекомендуется использовать существующие интеграционные тесты в качестве руководства. Я изучил его, но он не содержит тестов для этого типа провайдера.

Я новичок в таких вещах, и был бы хорошо, чтобы знать следующие вещи:

  1. Будет ли это правильным для повторного использования каких-либо образом этого подхода new ApacheDSContainer("dc=springframework,dc=org", "classpath:test-server.ldif");, который был упомянут в тесте интеграции LDAP (I я не уверен, что он подходит для меня, потому что я не создавал ldap ebbedded ldap-сервер в моем контексте приложения и не указывал никаких .ldif-файлов в указанной конфигурации, а также).
  2. Адрес, через который вы можете быть отправлены.

ответ

1

На самом деле вам просто нужно предоставить другую конфигурацию, которая будет загружена для целей тестирования. Там вы можете определить другой поставщик аутентификации, который, например, может просто аутентифицировать всех. Или просто просто отключить аутентификацию вообще.

Поскольку вы не хотите проверять функциональность, обеспечиваемую пружиной.

Смежные вопросы