как создать @service в Springboots, используя переменную полезной нагрузки - PullRequest
0 голосов
/ 30 июня 2018

Я совсем новичок в весенних сапогах, поэтому надеюсь, что это не глупый вопрос

У меня есть @Service, который должен инициировать атрибут класса, этот атрибут нуждается в информации, получаемой из RestPayload в контроллере. Я не нахожу наиболее рекомендуемый способ сделать это.

     @RestController
    public class UserController {

        @Autowired 
        private UserService userService;

        @RequestMapping("/searchUser")
        public List<UserWrapper> searchUser(@RequestBody UserWrapper userWrapper) {


            List<UserWrapper> returnUserWrapper = userService.findByName(userWrapper);
            return returnUserWrapper;
        }
}

А на уровне сервиса я бы хотел что-то вроде:

@Service
public class UserService {
    private LdapTemplate ldapTemplate;
    public static final String BASE_DN = "xxxxxxx";

    @Value( value = "${sample.ldap.url}" )
    private String ldapUrl;

    @Value( value =  "${sample.ldap.base}" )
    private String ldapBase;

    public UserService() {

    }

    public UserService(String dn, String password) {
        LdapContextSource ctxSrc = new LdapContextSource();
        System.out.println(this.ldapUrl);

        ctxSrc.setUrl(ldapUrl);
        ctxSrc.setBase(ldapBase);
        ctxSrc.setUserDn(dn);
        ctxSrc.setPassword(password);

        ctxSrc.afterPropertiesSet(); // this method should be called.\

        this.ldapTemplate =  new LdapTemplate(ctxSrc);

    }

Пароль String dn и String будут добавлены в полезную нагрузку REST, но остальные свойства получены из файла свойств.

Надеюсь, что кто-нибудь поможет мне с лучшими практиками

1 Ответ

0 голосов
/ 01 июля 2018

для аутентификации ldap вы должны взглянуть на spring-security:

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

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