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

译:如何使用Spring优雅地处理REST异常

处理Spring Security中的拒绝访问 6. 总结 1. 概览 本文将举例说明如何使用Spring来实现REST API的异常处理。...它用于将Spring中的标准异常解析为对应的HTTP状态码,即客户端错误——4xx和服务器错误——5xx状态码。这是Spring异常的完整列表,以及这些异常对应的HTTP状态码。...虽然它确实正确地设置响应的状态码,但有一个缺陷是它不会改变响应体。...处理Spring Security中拒绝访问 当一个经过身份认证的用户试图访问他没有足够权限访问的资源时,就会出现拒绝访问。 5.1....MVC – 自定义错误页 首先,让我们看一下MVC风格的解决方案,看看如何定制一个拒绝访问错误页面: 使用XML配置: <intercept-url pattern="/admin

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

看“猫”片, 学HTTP状态码

我们用浏览器访问网页时,浏览器会向网页所在服务器发出请求。服务器会返回一个包含HTTP状态码的信息(server header)用以响应浏览器的请求。 ?...100.jpeg 100 Continue 服务器已经收到请求,并且客户端应继续发送请求主体 ---- ?...201.jpeg 201 Created 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其URI已经随Location信息返回。 ---- ?...307.jpeg 307 Temporary Redirect 在这种情况下,请求应该与另一个URI重复,后续的请求应使用原始的URI。...500.jpeg 500 Internal Server Error 通用错误消息,服务器遇到了一个未曾预料的状况,导致它无法完成对请求的处理。没有给出具体错误信息。

2.1K30

HTTP状态码

- 请求的资源(网页等)不存在 500 - 内部服务器错误 HTTP状态码分类 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求...通常,这表示服务器提供请求的网页。 201 已创建 请求成功并且服务器创建了新的资源。 202 已接受 服务器已接受请求,尚未处理。...305 使用代理 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 306 – 已经不再被使用。...411 需要有效长度 服务器不接受不含有效内容长度标字段的请求。 412 未满足前提条件 服务器未满足请求者在请求中设置的其中一个前提条件。...451 因法律原因而被官方审查 由于法律原因产生的后果而被官方拒绝访问 5xx(服务器错误) 500 服务器内部错误 服务器遇到错误,无法完成请求。

1.2K20

CORS跨域资源共享(一):模拟跨域请求以及结果分析,理解同源策略【享学Spring MVC】

这个头),浏览器发现木有这个头,就抛出一个错误XMLHttpRequest,进而进入ajax的onerror回到方法里(这就是为何你明明看到http状态码是200,response也有返回值,偏偏你ajax...里就是进入的error的原因~),它的现象是:服务器正常返回了资源,浏览器拒绝接收了。...若有多个是逗号分隔,告诉服务器我真实请求即将携带的请求是哪些,本例是content-type这一个请求; 这些请求最终都发送给服务器,服务器收到这个预检请求后判断,检查这些,确认允许跨域与否就可以做出相应的回应...JSONP是一个相对比较古老的用于解决跨域问题的技术,对于新生代的程序员来说几乎可以忽略掉它,因为已经完全被新时代的CORS所代替,把前浪拍死在沙滩上。...直接完成请求发起和获取数据,因为都是这一个对象,所以处理错误更加方便 JSONP的唯一优势:支持更老的浏览器(现在都9012年,相信木有)。

4.8K10

CS 可视化: CORS

尽管有一些快速消除此错误的方法,今天我们不要掉以轻心!相反,让我们看看 CORS 到底在做什么,以及为什么它实际上是我们的朋友 ❗️ 在本博文中,我不会解释 HTTP 基础知识。...如果您想了解有关 HTTP 请求和响应的更多信息,我之前写过一篇小博文,尽管我在示例中使用的是 HTTP/1.1 而不是 HTTP/2,这不会影响 CORS。...客户端 CORS 尽管同源策略实际上仅适用于脚本,浏览器为 JavaScript 请求“扩展”此策略:默认情况下,我们只能访问相同源的获取的资源! 嗯,但是......这个头部现在已经添加到服务器发送回客户端的响应中。...服务器收到这个预检请求,并以服务器的 CORS 头部为空的 HTTP 响应进行响应!浏览器接收到预检响应,其中除了 CORS 头部之外不包含任何数据,并检查是否应该允许 HTTP 请求!

11210

配置跨域后,框架帮我们做了什么?

所以当你和前端联调的时候一直请求失败,报网络错误,一般情况下是后端没有做跨域配置。 注意此时并不是后端没有收到请求,而是收到请求,也返回结果,但是浏览器将结果拦截,并且报错。...www.javashitang.com http://book.javashitang.com 是,域名不同 https://www.javashitang.com http://www.javashitang.com... 如何解决跨域 虽然同源策略保证安全,一些合理的用途也会受到影响。...浏览器收到后进行检查如果不符合要求则不会发起后续请求 Access-Control-Allow-Origin:允许哪些域来访问(*表示允许所有域的请求) Access-Control-Allow-Methods...那估计是把设置header这些活交给网关层来做了。

30320

常见HTTPFTPWebSockets状态码大全

HTTP 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应信息,并以空行结束。...200 - (成功)请求已成功,请求所希望的响应或数据体将随此响应返回。 201 - (已创建)请求成功且服务器已创建了新的资源。。 202 - (已接受)服务器已接受了请求,尚未对其进行处理。...4xx客户端错误 这类的状态码代表客户端看起来可能发生了错误,妨碍服务器的处理。 400 - 错误的请求。 401 - 访问拒绝。 402 - 付款要求。...410 - 被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。 411 - 服务器拒绝在没有定义Content-Length的情况下接受请求。 412 - 前提条件失败。...501 - 尚未实施,页眉值指定未实现的配置。 502 - 错误网关,Web 服务器用作网关或代理服务器时收到了无效响应。 503 - 服务不可用,这个错误代码为 IIS 6.0 所专用。

6.1K32

HTTP状态码

HTTP状态码合集!http_code 状态码分类 分类 分类描述 1×× 信息,服务器收到请求,需要请求者继续执行操作。 2×× 成功,操作被成功接收并处理。...401 Unauthorized 表示客户端未能提供必要的验证,服务端拒绝提供资源。 403 Forbidden 表示服务端理解了该请求,客户端没有足够权限以访问,遂拒绝提供该资源。...410 Gone 表示请求的资源已经永久失效,客户端不应再次请求。 411 Length Required 表示服务端拒绝在没有定义Content-Length的情况下接收该请求。...客户端通常会缓存访问过的资源,通过提供一个信息指出客户端希望只返回在指定日期之后修改的资源。 305 Use Proxy 使用代理。所请求的资源必须通过代理访问。...422 Unprocessable Entity 422 则表现为请求格式错误出现 语义 错误,以至于服务端无法响应。

15510

最新 Restful API 风格 ResponseEntity 用法大全

; } HTTP状态码大全 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。...HTTP状态码分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义状态码的类型,后两个数字没有分类的作用。...4** 客户端错误,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误 HTTP状态码列表: HTTP状态码列表 状态码 状态码英文名称 中文描述 100...客户端通常会缓存访问过的资源,通过提供一个信息指出客户端希望只返回在指定日期之后修改的资源 305 Use Proxy 使用代理。...所请求的资源必须通过代理访问 306 Unused 已经被废弃的HTTP状态码 307 Temporary Redirect 临时重定向。与302类似。

33710

180815-Spring之RestTemplate中级使用篇

请求设置 首先一个问题就是为什么要设置请求?...Get请求 直接看RestTemplate提供的几个Get请求接口,并没有发现有设置请求的地方,是不是就表明没法设置请求?...当然也需要对比下不设置agent的情况,直接抛一个异常出来了(说明,不显示覆盖User-Agent时,后端接收到的agent为: Java/1.8.0_171 ?...上面虽然只给设置User-Agent的例子,但是其他的请求,都是可以放在自定义的Interceptor中添加进去的 2....请求超时的设置比较实用,有必要了解下 在访问某些特殊的网站时,代理的设置也避不开 请求有身份鉴权的情况下,如何安全的携带自己的身份呢? RestTemplate底层使用的是什么网络库做的网络访问

70920

Spring之RestTemplate中级使用篇

请求设置 首先一个问题就是为什么要设置请求?...Get请求 直接看RestTemplate提供的几个Get请求接口,并没有发现有设置请求的地方,是不是就表明没法设置请求?...答案档案是能设置,具体的使用思路有点类似mvc中的拦截器,自定义一个拦截器,然后在你实际发起请求时,拦截并设置request的请求 注意到 RestTemplate 的父类InterceptingHttpAccessor...[C420EE9FB481154F53D442684F8A7B9A.jpg] 当然也需要对比下不设置agent的情况,直接抛一个异常出来了(说明,不显示覆盖User-Agent时,后端接收到的agent...请求超时的设置比较实用,有必要了解下 在访问某些特殊的网站时,代理的设置也避不开 请求有身份鉴权的情况下,如何安全的携带自己的身份呢? RestTemplate底层使用的是什么网络库做的网络访问

2.5K10

HTTP状态码列表

服务器中没有)403(服务器拒绝访问,权限不够) 500~599:服务器端出现错误,常用500 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。...100 Continue 服务器已经收到请求,并且客户端应继续发送请求主体(在需要发送身体的请求的情况下:例如,POST请求),或者如果请求已经完成,忽略这个响应。...状态码为起源,回应原始响应的修改版本。...[30] 如果错误发生时客户端正在传送数据,那么使用TCP的服务器实现应当仔细确保在关闭客户端与服务器之间的连接之前,客户端已经收到了包含错误信息的数据包。...[41]这个状态码允许客户端在获取资源时在请求的元信息(请求字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。

70230

前端开发面试题答案(五)

204——请求收到返回信息为空 205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 206——服务器已经完成了部分用户的GET请求 3**(重定向类):为了完成指定的动作...,必须接受进一步处理 300——请求的资源可在多处得到 301——本网页被永久性转移到另一个URL 302——请求的网页被转移到一个新的地址,客户访问继续通过原始URL地址,重定向...303——建议客户访问其他URL或访问方式 304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存,还可以继续使用 305——请求的资源必须从服务器指定的地址得到...授权失败 402——保留有效ChargeTo响应 403——禁止访问,服务器收到请求,但是拒绝提供服务 HTTP 403.1 禁止访问:禁止可执行访问 HTTP 403.2...- 禁止访问:客户证书已经到期或者尚未生效 404——一个404错误表明可连接服务器,服务器无法取得所请求的网页,请求资源不存在。

1.7K20

接口-Fiddler-​HTTP状态码详解

1.1 100 Continue 服务器已经收到请求,并且客户端应继续发送请求主体(在需要发送身体的请求的情况下:例如,POST请求),或者如果请求已经完成,忽略这个响应。...状态码为起源,回应原始响应的修改版本。...第4章 4XX客户端错误 这类的状态码代表客户端看起来可能发生了错误,妨碍服务器的处理。...如果错误发生时客户端正在传送数据,那么使用TCP的服务器实现应当仔细确保在关闭客户端与服务器之间的连接之前,客户端已经收到了包含错误信息的数据包。...这个状态码允许客户端在获取资源时在请求的元信息(请求字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。

99410

HTTP 返回状态值详解

当用户点击或搜索引擎向网站服务器发出浏览请求时,服务器将返回Http Header Http信息状态码,常见几种如下: 1、Http/1.1 200 OK 访问正常   表示成功访问,为网站可正常访问时的状态...6、Http/1.1 404 Not Found 文件或目录不存在   表示请求文件、目录不存在或删除,设置404错误页时需确保返回值为404。...处理未完成 203——返回信息不确定或不完整 204——请求收到返回信息为空 205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 206——服务器已经完成了部分用户的GET请求 3xx...:完成此请求必须进一步处理 300——请求的资源可在多处得到 301——删除请求数据 302——在其他地址发现请求数据 303——建议客户访问其他URL或访问方式 304——客户端已经执行了GET,...410——服务器上不再有此资源且无进一步的参考地址 411——服务器拒绝用户定义的Content-Length属性请求 412——一个或多个请求字段在当前请求中错误 413——请求的资源大于服务器允许的大小

3K30

Ajax Status请求状态

201 - Created 服务器已经创建了文档,Location给出了它的URL。 202 - Accepted 已经接受请求,处理尚未完成。...203 - Non-Authoritative Information 文档已经正常地返回,一些应答可能不正确,因为使用的是文档的拷贝,非权威性信息(HTTP 1.1新)。...401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。 403 - Forbidden 资源不可用。服务器理解客户的请求,拒绝处理它。...通常由于服务器上文件或目录的权限设置导致。 禁止访问:IIS 定义许多不同的 403 错误,它们指明更为具体的错误原因: 403.1 - 执行访问被禁止。 403.2 - 读访问被禁止。...502 - Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,该服务器返回了非法的应答。 亦说Web 服务器用作网关或代理服务器时收到了无效响应。

1.8K10

Spring RestTemplate进阶:拦截器

文中将通过一个示例来展示如何创建一个Spring RestTemplate拦截器及如何使用这个拦截器来添加一个自定义HTTP。 2....拦截器的使用场景 除了修改HTTP之外,RestTemplate拦截器还可以用于下面的场景: 打印请求和响应日志 用可配置的回滚策略进行重试 基于某些请求参数来拒绝请求 改变请求的URL 3....Foo。...总结 本教程介绍如何设置拦截器并将其配置到RestTemplate对象中。这种拦截器还可以用于过滤、监控和控制传入的请求。...RestTemplate拦截器的一个常用场景是修改HTTP——我们已经在本文中详细说明了这一点。 和往常一样,文中用到的示例代码可以在Github项目上找到。

2.5K20

最全HTTP 状态码

411需要有效长度服务器不接受不含有效内容长度标字段的请求。412未满足前提条件服务器未满足请求者在请求中设置的其中一个前提条件。...RFC指定这个代码应该是由茶罐返回给速溶咖啡。419认证超时并不是HTTP标注的一部分,419认证超时表示以前的有效证明已经失效。...同时也被用于401未认证的替代选择为了从其它被拒绝访问的已认证客户端中指定服务器的资源。420方法失效不是HTTP的标准,但是被Spring定义在HTTP状态类中当方法失时使用。...504网关超时服务器作为网关或代理,但是没有及时从上游服务器收到请求。505HTTP 版本不受支持服务器不支持请求中所用的 HTTP 协议版本。506内部配置错误服务器存在内部配置错误,无法完成请求。...508发现环路服务器发现一个无限的循环档处理请求的时候。509带宽限制服务器达到带宽限制。这不是一个官方的状态码,但是被广泛使用。510策略未满足获取资源所需要的策略并没有满足。

46510

Servlet生命周期与HTTP协议

可以看到在控制台上打印这段话,但是如果第二次访问就不会打印,因为Servlet对象只会实例化一次: ?...202——接受和处理、处理未完成 203——返回信息不确定或不完整 204——请求收到返回信息为空 205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 206——服务器已经完成了部分用户的...304——客户端已经执行了GET,文件未变化 305——请求的资源必须从服务器指定的地址得到 306——前一版本HTTP中使用的代码,现行版本中不再使用 307——申明请求的资源临时性删除 2.3.2.4...:密码更改   HTTP 403.12 - 禁止访问:映射器拒绝访问   HTTP 403.13 - 禁止访问:客户证书已被吊销   HTTP 403.15 - 禁止访问:客户访问许可过多   HTTP...410——服务器上不再有此资源且无进一步的参考地址 411——服务器拒绝用户定义的Content-Length属性请求 412——一个或多个请求字段在当前请求中错误 413——请求的资源大于服务器允许的大小

67220
领券