Это включает в себя интеграцию с AD. Теперь код AD в Springboot 2.1 работал нормально, но как только я перешел на Springboot 3, он перестал работать и начал показывать
Код: Выделить всё
org.springframework.ldap.InvalidNameException: [LDAP: error code 34 - invalid DN]Вот мой старый код -
Код: Выделить всё
@Autowired
public void configure(AuthenticationManagerBuilder auth) throws Exception {
ActiveDirectoryLdapAuthenticationProvider adProvider = new ActiveDirectoryLdapAuthenticationProvider(domain,
ldapUrls, ldapBaseDn);
adProvider.setConvertSubErrorCodesToExceptions(true);
adProvider.setUseAuthenticationRequestCredentials(true);
if (ldapUserDnPattern != null && ldapUserDnPattern.trim().length() > 0) {
adProvider.setSearchFilter("(&(objectClass=user)(sAMAccountName={1}))");
// adProvider.setSearchFilter(ldapUserDnPattern);
}
auth.authenticationProvider(adProvider);
auth.eraseCredentials(false);
}
Код: Выделить всё
@Bean
public AuthenticationManager authManager(HttpSecurity http) throws Exception {
ActiveDirectoryLdapAuthenticationProvider adProvider =
new ActiveDirectoryLdapAuthenticationProvider(domain, ldapUrls,ldapBaseDn);
adProvider.setConvertSubErrorCodesToExceptions(true);
adProvider.setUseAuthenticationRequestCredentials(true);
adProvider.setSearchFilter("(&(objectClass=user)(sAMAccountName={1}))");
AuthenticationManagerBuilder authenticationManagerBuilder =
http.getSharedObject(AuthenticationManagerBuilder.class);
authenticationManagerBuilder.authenticationProvider(adProvider);
return authenticationManagerBuilder.build();
Я не могу поделиться своим доменом, ldapUrls и ldapBaseDn в соответствии с политикой компании. но они были одинаковыми на протяжении всего процесса, и я проверил с помощью Apache Directory Studio правильность конфигурации моего кода.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ringboot-3
Мобильная версия