В нашем проекте мы реализуем интерфейс с 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"
Заранее спасибо