Приложение Spring Boot с пользовательской формой React и авторизацией LDAP возвращает статус 302 при отправке учетных данных - PullRequest
0 голосов
/ 14 декабря 2018

В нашем проекте мы реализуем интерфейс с React, т.е. интегрируем в jar-файл статический html с упакованным js-файлом React.Backend - это Spring Boot + Spring Security.Приложение имеет форму авторизации, которая выполняется путем обращения к LDAP.

Если я ограничу конфигурацию безопасности Spring до базовых, то есть Boot открывает свою собственную базовую форму входа в систему, тогда авторизация работает нормально

Но когда япопытаться интегрировать пользовательскую форму входа в систему, затем форма показывает, но мне не удается ответить 302 (Tomcat предоставлен Boot).Я даже не достиг точки останова в классе, обеспечивающем авторизацию Ldap ... так что это звучит странно, почему статус 302, если попытка авторизации не произошла.

Я был бы очень признателен за любой совет.

Соответствующая часть РАБОЧЕЙ конфигурации без графического интерфейса React:

@Autowired
private Environment env;
@Autowired
private MoAuthenticationSuccessHandler moAuthenticationSuccessHandler;


@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .csrf().disable()
            .authorizeRequests()
            //.antMatchers("/resources/**").permitAll()
            .anyRequest().authenticated()
            .and()
            .addFilter(new JWTAuthorizationFilter(authenticationManager()))
            .formLogin()
            .permitAll()
            .successHandler(moAuthenticationSuccessHandler)
            .loginProcessingUrl("/login");
}

и вариант, когда я задействую форму React:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .csrf().disable()
            .authorizeRequests()
            //.antMatchers("/resources/**").permitAll()
            .anyRequest().authenticated()
            .and()
            .addFilter(new JWTAuthorizationFilter(authenticationManager()))
            .formLogin()
            .loginPage("/login")
            .permitAll()
            .successHandler(moAuthenticationSuccessHandler)
            .loginProcessingUrl("/login");
}
plus
 @Bean
public WebMvcConfigurer adapter() {

    return new WebMvcConfigurer() {

        @Override
        public void addViewControllers(final ViewControllerRegistry registry) {
            registry.addViewController("/login").setViewName("index.html");

        }...
  • Объявление .loginPage("/login") заменяет страницу входа по умолчанию и возлагает на меня ответственность за предоставление страницы, обслуживающей этот URL-адрес, - путем регистрации registry.addViewController("/login").setViewName("index.html") Я отвечаю за это за форму React.

  • loginProcessingUrl("/login") являетсясвоего рода конечная точка REST, которая принимает данные из формы, если форма имеет атрибут action, который также учитывает "/login"

Заранее спасибо

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