JHipster / LDAP - создание нового пользователя в JHipster BDD при первом подключении - PullRequest
0 голосов
/ 27 ноября 2018

Я новичок в JHipster и настроил LDAP из официального источника ( JHipster LDAP ).

Аутентификация LDAP теперь в порядке и работает хорошо.

Теперь яхотите создать нового пользователя при первом подключении в базе данных JHipster.

Информация о пользователе для имени / почты / ... находится в LDAP.

Создание должно произойти после успешной аутентификации из LDAP.

Есть предложения?

1 Ответ

0 голосов
/ 03 декабря 2018

Хорошо, я нашел ответ.

После реализации соединения 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...