在我们的项目中,我们使用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"
的话),该表单也会接受来自表单的数据
提前谢谢