Я использую встроенный ldap-сервер с весенней загрузкой для тестирования моего файла ldif и его учетных данных, но, как я обнаружил, мой формат файла ldif немного отличается от обычного ldif, поскольку dc не является приватным, внутри dn указывается только o.
Я пробовал другую конфигурацию для указанного выше формата ldif, но он по-прежнему показывает экран Bad Credentials, но он отлично работает с другими файлами ldif.
Файл ldif
# id=00000001
dn: o=COMPANY
objectClass: organization
structuralObjectClass: organization
o: COMPANY
entryCSN: 20130409162114.626166Z#000000#000#000000
entryUUID: 3e7f8668-357d-1032-8a6b-c5bcf7f703f0
creatorsName: cn=Manager,o=COMPANY
createTimestamp: 20130409162114Z
modifiersName: cn=Manager,o=COMPANY
modifyTimestamp: 20130409162114Z
contextCSN: 20130702105648.506150Z#000000#000#000000
contextCSN: 20191018052018.692119Z#000000#001#000000
contextCSN: 20191018044350.858888Z#000000#002#000000
contextCSN: 20191018053729.621549Z#000000#003#000000
# id=00000002
dn: ou=department,o=COMPANY
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
ou: department
entryCSN: 20130409162455.623488Z#000000#000#000000
entryUUID: c2390a06-357d-1032-8a6c-c5bcf7f703f0
creatorsName: cn=Manager,o=COMPANY
createTimestamp: 20130409162455Z
modifiersName: cn=Manager,o=COMPANY
modifyTimestamp: 20130409162455Z
WebSecurityConfig
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("uid={0},ou=department")
.contextSource()
.url("ldap://localhost:8389/o=COMPANY")
.and()
.passwordCompare()
.passwordEncoder(new LdapShaPasswordEncoder())
.passwordAttribute("userPassword");
}
application.properties
spring.ldap.embedded.base-dn= o=COMPANY
spring.ldap.embedded.ldif=classpath:ldap-server-2.ldif
spring.ldap.embedded.port= 8389
spring.ldap.embedded.validation.enabled=false
После того, как, настроив все вышеперечисленные детали, приложение работает хорошо, и я получаю экран аутентификации, но событие после правильных учетных данных, я получаю экран Bad Credentials. Я не понимаю, в чем дело, будь то имя dn для ldif или как?
Пожалуйста, предоставьте ваши ценные предложения. Заранее спасибо!