Хорошо, я нашел ответ.
После реализации соединения Jhipster LDAP вам нужно изменить класс CustomAuthenticationManager: authenticate, заменив метод mapUserFromContext следующим кодом:
@Override
public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection<? extends GrantedAuthority> clctn) {
Optional<User> isUser = userRepository.findOneWithAuthoritiesByLogin(username);
if(!isUser.isPresent()){
UserDTO newUser = new UserDTO();
newUser.setLogin(authentication.getName());
newUser.setFirstName(ctx.getStringAttribute("givenName"));
newUser.setLastName(ctx.getStringAttribute("sn"));
newUser.setEmail(ctx.getStringAttribute("mail"));
newUser.setLangKey("fr");
newUser.setImageUrl("youimageurl");
userService.registerUser(newUser, "1");
}
isUser = userRepository.findOneWithAuthoritiesByLogin(username);
final User user = isUser.get();
Set<Authority> userAuthorities = user.getAuthorities();
Collection<GrantedAuthority> grantedAuthorities = new ArrayList<>();
for(Authority a: userAuthorities){
GrantedAuthority grantedAuthority = new SimpleGrantedAuthority(
a.getName());
grantedAuthorities.add(grantedAuthority);
}
return new org.springframework.security.core.userdetails.User(
username, "" , grantedAuthorities);
}
Aновый пользователь (newUser) создается, если зарегистрированный пользователь не известен в базе данных JHipster (происходит после успешной аутентификации LDAP).
Используйте ctx.getStringAttribute ("ldapProperty") для получения информации из LDAP.