我目前正在使用SpringSecurity来验证我的登录屏幕。对于无效登录(错误的用户名/密码组合),它可以正常工作。当我输入正确的用户名和密码时,我会收到成功消息,但会被重定向回登录屏幕。我在前端使用axios在收到一个好的请求后将我重定向到登录屏幕。我不想上传所有的代码,但我会上传我认为是必要的解决问题。
安全配置.java
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.authorizeRequests()
.antMatchers("/login", "/signup").permitAll()
.antMatchers("/home/**").authenticated().anyRequest().permitAll()
.and().formLogin()
.loginPage("/login");
}
@Bean
public PasswordEncoder getPasswordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
}
前端javascript代码
getRequest(){
console.log("HERE");
axios({
method: 'post',
url: 'http://localhost:8080/api/login',
data: {
username: this.username,
password: this.password
}
})
.then(res => {
alert("Success, Authenticiation processed!");
window.location = "http://localhost:8080/home";
})
.catch(err => {
this.status = "ERROR";
console.log("error")
});
}
我100%肯定这与安全配置有关,因为我已经调试了我的控制器,似乎没有什么问题。提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!