首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

403执行delete请求时禁止。Spring boot rest api

403执行delete请求时禁止是指在使用Spring Boot开发的REST API中,当客户端发送一个DELETE请求时,服务器返回403 Forbidden错误,表示禁止执行该请求。

在RESTful架构中,DELETE请求用于删除资源。然而,有时候我们希望对某些资源进行保护,不允许随意删除。这种情况下,可以通过在服务器端进行权限控制来禁止执行DELETE请求。

为了实现这个功能,可以在Spring Boot中使用Spring Security框架来进行权限管理。Spring Security提供了一套强大的安全认证和授权机制,可以灵活地配置不同的权限规则。

以下是一个示例的Spring Boot REST API中禁止DELETE请求的配置:

  1. 首先,需要在pom.xml文件中添加Spring Security的依赖:
代码语言:txt
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 在Spring Boot的配置类中,添加@EnableWebSecurity注解来启用Spring Security:
代码语言:txt
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    // 配置权限规则
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers(HttpMethod.DELETE, "/api/**").hasRole("ADMIN")
                .anyRequest().permitAll()
                .and()
            .csrf().disable();
    }
}

上述配置中,使用了antMatchers方法来匹配DELETE请求,并指定了"/api/**"路径下的请求需要具有"ADMIN"角色才能执行。其他请求则允许任何人访问。同时,通过调用csrf().disable()方法禁用了CSRF保护,以简化示例。

  1. 在数据库或其他适当的地方配置用户角色信息。例如,可以创建一个名为"ADMIN"的角色,并将其分配给特定的用户。

通过以上配置,当客户端发送一个DELETE请求时,如果用户没有"ADMIN"角色,服务器将返回403 Forbidden错误,禁止执行该请求。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云服务器负载均衡(CLB):https://cloud.tencent.com/product/clb
  • 腾讯云云数据库MySQL版(TencentDB for MySQL):https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云内容分发网络(CDN):https://cloud.tencent.com/product/cdn
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

后端开发必备的 RestFul API 知识

/spring-hateoas-tutorial(RestFul API Tutorial)•https://aisensiy.github.io/2017/06/04/spring-boot-and-hateoas.../(Spring中使用HATEOAS)•https://spring.io/guides/tutorials/bookmarks/ (Building REST services with Spring...2xx 成功,行为被成功地接受、理解和采纳 3xx 重定向,为了完成请求,必须进一步执行的动作 4xx 客户端错误,请求包含语法错误或者请求无法实现。范围保留用于响应客户端做出的错误,例如。...403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。...410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象,发生一个验证错误。

77440

5个REST API安全准则

例如,GET请求可能是对应读取实体,而PUT将更新现有实体,POST将创建一个新实体,DELETE将删除现有实体。 只允许需要的动词,其他动词将返回适当的响应代码 ( 例如,禁止一个403)。...当设计REST API,不要只使用200成功或404错误。 以下是每个REST API状态返回代码要考虑的一些指南。 正确的错误处理可以帮助验证传入的请求,并更好地识别潜在的安全风险。...200 OK -回应一个成功的REST API的行动。HTTP方法可以是GET,POST,PUT,PATCH或DELETE。 400错误请求 -请求格式错误,如消息正文格式错误。...403禁止 -当身份验证成功,但身份验证的用户没有权限使用请求的资源。 404未找到 -当请求一个不存在的资源。 405不允许的方法 -意外的HTTP方法的错误检查。...在设计和构建REST API,您必须注意安全方面。

3.7K10

赏心悦目的RESTful API这样来设计!

同时客户端也应作出相应的配合,客户端请求,也要明确告诉服务器,可以接受 JSON 格式,即请求的 HTTP 头的 ACCEPT属性也要设成 application/json,多渠道调用可能会存在相同资源需要有不同的...:客户端请求有效,服务器处理发生了意外 503ServiceUnavailable:服务器无法处理请求,一般用于网站维护状态 无状态 过去开发人员通常会将活动的用户信息存储在服务端的 session...这是一种使用注释添加文档的声明性方法,它进一步生成描述 API 及其用法的 JSON,可以实时应对 API 的更新,具体请参考 Swagger 官网 , 同时使用 Spring Boot 的小伙伴也可以很轻松的集成...Swagger,只需引入Swagger Starter com.spring4all swagger-spring-boot-starter...框架的小伙伴可以快速的体验一下这种方式,Spring 官网项目 Spring HATEOAS , 会快速的将参数都做替换, 将查看 API URL 中的 id 直接替换成 1。

1.4K10

如何设计好的RESTful API

同时客户端也应作出相应的配合,客户端请求,也要明确告诉服务器,可以接受 JSON 格式,即请求的 HTTP 头的 ACCEPT属性也要设成 application/json,多渠道调用可能会存在相同资源需要有不同的...:客户端请求有效,服务器处理发生了意外 503ServiceUnavailable:服务器无法处理请求,一般用于网站维护状态 无状态 过去开发人员通常会将活动的用户信息存储在服务端的 session...这是一种使用注释添加文档的声明性方法,它进一步生成描述 API 及其用法的 JSON,可以实时应对 API 的更新,具体请参考 Swagger 官网 , 同时使用 Spring Boot 的小伙伴也可以很轻松的集成...Swagger,只需引入Swagger Starter com.spring4all swagger-spring-boot-starter...框架的小伙伴可以快速的体验一下这种方式,Spring 官网项目 Spring HATEOAS , 会快速的将参数都做替换, 将查看 API URL 中的 id 直接替换成 1。

1.6K20

总结最近半年对Elasticsearch开源项目的贡献

修复_search/template API返回结果总量不准的bug issue: #52801 PR: #53155 调用GET _search/template API,如果设置了rest_total_hits_as_int...当因磁盘写满而导致ES自动对索引设置read_only_allow_delete block,对http请求返回429状态码而不是403 issue: #49393 PR: #50166 这个提交有意思了...这个改动的初衷是因为在磁盘写满的情况下,ES会自动地把对应节点上的索引设置为只读(index.read_only_allow_delete=true), 后续有新的写入请求进来后,会直接返回403状态码拒绝进行写入...实际上,ES对所有类型的block,对应的http状态码都设置为403, 这就会导致一个问题,在部分客户端比如rest client碰到403的状态码,是不会对写入请求进行重试的,直接丢弃掉请求,导致数据丢失...一方面,auto release开启,因为客户端接收到429状态码,写入请求经过重试后能够成功执行;另一方面,关闭auto release, 写入请求经过数次重试后仍然执行失败而报错。

1.7K31

Spring Boot 2.x(十):构建优雅的RESTful接口

:8088/api/users 请求方式:POST //删除人员(传统) localhost:8088/api/user/delete 请求方式:DELETE //删除人员(RESTful...总结一下,REST就是指对同一个URI的资源的不同请求方式(GET,POST,PUT,DELETE)(表述)下的做出的不同的操作(查,增,改,删),改变的是资源的状态,即表述性状态转移。...看到这里,相信RESTful已经了解的差不多了,下面我们来看看在Spring Boot中如何去使用 SpringMVC 构建RESTful接口 SpringMVC中给我们提供了一些注解,可以帮助我们去构建...; } @DeleteMapping public void delete() { log.info("DELETE方法执行。。。")...; } } 这里的工程创建可以参照Spring Boot 2.x(五):Mybatis-Plus结合Spring Boot 下面我们也许需要一个前端的工程或者POSTMAN等测试接口的工具来发送不同的请求

78620

基于Java、Kafka、ElasticSearch的搜索框架的设计与实现

Jkes提供了注解驱动的JPA风格的对象/文档映射,使用REST API用于文档搜索。...搜索API 启动搜索服务jkes-search-service,搜索服务是一个Spring Boot Application,提供rest搜索api,默认运行在9000端口。 URI query ?...进行查询,因为我们需要在后续版本使用机器学习进行搜索排序,而直接与ElasticSearch进行耦合,会增加搜索排序API的接入难度 查询服务是一个Spring Boot Application,使用docker...打包为镜像 查询服务提供多版本API,用于API进化和兼容 查询服务解析json请求,进行一些预处理后,使用ElasticSearch Java Rest Client转发到ElasticSearch,...查询服务提供多版本API,用于API进化和兼容 jkes-search-service目前支持URI风格的搜索和JSON请求体风格的搜索。

2.1K10

Spring Data RESTSpring RestTemplate 实战详解

快速开始 我们以 Gradle、Spring Boot 2.0 和 Spring Data Jpa、Spring Data Rest 快速大家建一个 Rest 风格的消费 Server 版 API。...:2.0.0.RC1') //spring Data Rest compile('org.springframework.boot:spring-boot-starter-data-rest:...DELETE:删除暴露的资源。 POST:从给定的请求正文创建一个新的实体。 (4)分页排序 Spring Data REST 会识别一些会影响页面大小和起始页码的 URL 参数。...类型为ResourceProcessor>的所有 bean 将自动由 Spring Data REST 导出器拾取,并在序列化类型为 T 的实体触发。...Boot 2.0 加载其原理 通过我们前面的快速开始,我们大概知道了如何配置 Spring Data Rest,我们来解刨一下它在 Spring Boot 2.0 下是如何工作的。

5.4K50

Spring Boot快速开发REST服务实践

Spring Boot通过提供开箱即用的默认依赖或者转换来补充Spring REST支持。在Spring Boot中编写RESTful服务与SpringMVC没有什么不同。...总而言之,基于Spring BootREST服务与基于SpringREST服务完全相同,只是在我们引导底层应用程序的方式上有所不同。...请求来更新 对于/user/api/1 HTTP DELETE请求来删除id为1的用户 HTTP GET请求/user/api 查询全部 URL:http://localhost:8080/user/api...有了大致的掌握,今当下的前端Client层出不穷,后端接口或许来自不同平台,这时候需要请求一批接口,而RESTful风格的api,使人从请求方式和地址一看就知道是要做什么操作,根据返回code状态就知道结果如何...因为PUT请求URL到客户端定义的URL处完整地创建或替换资源,所以PUT是幂等的。DELETE请求也是幂等的,用来删除操作,其实REST就是相当于一个风格规范。

80230

Spring Boot - Rest VS GraphQL

资源的操作通常使用HTTP动词来执行,如GET(获取资源)、POST(创建资源)、PUT(更新资源)和DELETE(删除资源)等。...状态无关:REST是无状态的,每个请求都包含足够的信息以处理该请求,服务器不需要存储客户端的状态。 数据传输:客户端通常不能选择要获取的数据,而是由服务器决定哪些数据返回给客户端。...图解 ---- Code Spring Boot + RestSpring Boot中整合REST,您可以使用Spring Web模块,它提供了用于构建RESTful Web服务的支持。...这就是一个简单的Spring Boot整合REST的示例工程。...Spring Boot + GraphQL 在Spring Boot中整合GraphQL,您可以使用第三方库(例如graphql-java和spring-graphql)。

21630
领券