下面是我正在使用的SecurityConfiguration类。
@SpringBootApplication
@RestController
public class WebMvcConfig {
@Configuration
protected static class SecurityConfiguration extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/**").authenticated()
.anyRequest().authenticated()
.and()
.formLogin().permitAll();
}
}
启动后,当我点击我的URL(http://localhost:8080/TestApp/)时,它将带我到默认登录页面,当我输入默认用户ID(用户)和密码(打印在控制台上)时,它会通过AngularJS路由,将我带到由“ /” URL映射的index.html页面。我可以在用户界面中导航,但是一旦提交任何$ http请求(我正在尝试POST请求),它就会在浏览器控制台上显示$ 403和我的$ http请求URL。
有人可以帮忙吗?
答案 0 :(得分:2)
错误403 表示您被禁止访问所有资源。
如果检查错误详细信息,则很有可能会收到诸如Expected CSRF token not found
之类的消息。
从v4开始,spring security
默认启用csrf
保护。这是一个好习惯,因为csrf
攻击会迫使最终用户在当前已通过身份验证的Web应用程序上执行不需要的操作。
因此,在开发环境中,添加http.csrf().disable();
将解决您的问题。但是,当您要转到产品环境时,应该考虑添加csrf
令牌。