删除方法显示“禁止”消息

时间:2019-05-11 19:58:54

标签: spring-boot http http-delete

我正在测试一个Spring-boot应用程序,该应用程序允许我删除数据库内容。我暂时访问了配置中的所有端点:

 @Override
  protected void configure(HttpSecurity http) throws Exception {
      //Allow access to all endpoints
        http.cors().and().authorizeRequests().anyRequest().permitAll(); 
  }

属性是:

spring.datasource.url=jdbc:mariadb://localhost:3307/cardb
spring.datasource.username=root
spring.datasource.password=******
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create-drop

spring.jpa.show-sql=true

spring.data.rest.basePath=/api

然后我可以使用应用程序中的GET方法或Postman从数据库中获取内容,但我确实得到了:

  

{      “ timestamp”:“ 2019-05-11T17:57:36.310 + 0000”,      “状态”:403,      “错误”:“禁止”,      “消息”:“禁止”,   }

当我尝试使用DELETE方法删除时。

为什么会出现此错误,如何获得授权才能最终从数据库中删除对象?

1 个答案:

答案 0 :(得分:1)

您应该禁用CSRF(跨站请求伪造),默认情况下,该CSRF会为任何修改状态(PATCH,POST,PUT和DELETE –不是GET)的方法启用:

@Override
protected void configure(HttpSecurity http) throws Exception {
     //Allow access to all endpoints
     http.csrf().disable().cors().and().authorizeRequests().anyRequest().permitAll(); 
}