具有自定义React表单和LDAP授权的Spring Boot应用在提交凭据时返回状态302

时间:2018-12-14 12:57:01

标签: reactjs spring-boot spring-security

在我们的项目中,我们使用React实现前端,即,将打包的React js文件集成到jar文件静态html中。后端是Spring Boot + Spring Security。 应用具有授权表,可以通过寻址到LDAP完成。

如果我将spring安全性配置简化为基本内容,即Boot打开其自己的基本登录表单,则授权工作正常

但是,当我尝试集成自定义登录表单时,会显示表单,但是我失败,并显示302响应(Boot提供的Tomcat)。在提供Ldap授权的类中,我什至没有碰到断点……因此,如果未进行授权尝试,为什么状态为302听起来很奇怪。

我非常感谢您的任何建议。

不带React GUI的WORKING配置的相关部分:

@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")将替换默认的登录页面,并让我负责提供该网址的页面-通过注册registry.addViewController("/login").setViewName("index.html"),我使React表单对此负责。

  • loginProcessingUrl("/login")是一种REST端点,如果表单也具有action属性(同时查看"/login"的话),该表单也会接受来自表单的数据

提前谢谢

0 个答案:

没有答案