首页
学习
活动
专区
圈层
工具
发布

浅入ABP(2):添加基础集成服务

配置 API 服务 统一 API 模型验证消息 创建前 创建方式 创建后 补充:为什么需要统一格式 上一篇,我们已经搭建起了一个基本的程序结构,下面我们来添加一些必要的服务,例如异常拦截器、跨域等。...= 401, Status402PaymentRequired = 402, Status403Forbidden = 403, Status404NotFound...; Message:响应的信息; Data:响应的数据; 可能你会觉得这样很奇怪,先不要问,也不要猜,照着做,后面我会告诉你为什么这样写。...我非常讨厌一个 Action 的一个返回,就写一次消息的。 if(... ...) return xxxx("请求数据不能为空"); if(... ...)...补充:为什么需要统一格式 首先,你看一下这样的代码: ? 在每个 Action 中,都充满了这种写法,每个相同的验证问题,在每个 Action 返回的文字都不一样,没有规范可言。

2.2K30

Nginx禁止访问该用401还是403

之前在某些文章中看到建议在nginx配置中用return401而不用403,也没说具体原因,最近这不闲了,突然想起来,google了半天也没有任何相关的信息(可能不太会用google),没办法,只能自己实践看看了...收到403响应表示服务器完成认证过程,但是客户端请求没有权限去访问要求的资源 上面是两个状态码的解释,总的来说,401响应应该用来表示缺失或错误的认证;403响应应该用来表示当用户被认证后,但用户没有被授权对特定资源的访问或操作...,这不是今天的重点 既然是nginx中配置的,那就配置nginx,访问下。...接着改成return 403 ? 查看日志,大小差不多 ? 查看host.access.log ? 正常的403日志返回,查看host.error.log,403请求详细记录 ?...从上面的测试结果来看,401和403对于nginx来说,好像没什么不同,该处理的,还是要处理,没有少任何步骤,所以401和403的选择,应该是根据你要返回给客户端什么样的信息来决定 另外附HTTP状态码决策图

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

    HTTP协议之状态码详解

    如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。  本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了。   ...403 Forbidden(禁止)   Web客户端发送的请求被Web服务器拒绝了, 如果服务器想说明为什么拒绝请求,可以包含实体的主体部分来对原因进行描述。...(目前我还不知道这两个的区别)   实例:  发送一个是trace方法的Request 给www.google.com ? ?   ...500 Internal Server Error(内部服务器错误)   这个太常见了, 我们开发网站的时候,当我们的程序出错了时,就会返回500错误。   实例:ASP.NET 程序出错 ?...服务器就能返回501了。 ? ?   502 Bad Gateway(网关故障)   代理使用的服务器遇到了上游的无效响应。     Fiddler本身就是代理服务器。

    2.1K10

    Restful API 设计指北

    针对于 主域名目录方式 domain/api/v1/ https://debuginn.cn/api/v1/ 3、Schema 响应数据模式 现在前后端分离项目使用的数据响应模式大部分采用的是 JSON...筛选操作 api.domain/user/limit/10 指定返回记录的数量; api.domain/user/offset/10 指定返回记录的开始位置; api.domain/user/animal_type_id...一般用在异步处理的情况,响应 body 中应该告诉客户端去哪里查看任务的状态 204 No Content 请求已经处理完成,但是没有信息要返回,经常用在 PUT 更新资源的时候(客户端提供资源的所有属性...状态码,并在 body 中说明具体的错误信息;而没有被授权访问的资源操作,需要返回 403 Forbidden 状态码,还有详细的错误信息。...9、Hypermedia API RESTful API 最好做到 Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

    1K20

    Spring Security 实战干货: 401和403状态

    今天来谈谈两个和认证授权息息相关的两个状态401和403以及它们如何在Spring Security融入体系中的。 2. 401 未授权 我在RFC 7235[1]中找到了相关的表述。...当客户端收到401状态码时,表明了该请求因为缺乏了被信任的认证凭据而被拒绝访问目标资源。 如果用户在请求中携带了认证凭据,那么401响应表明该凭据是未授信的,不能访问目标资源。...比如,用户输错了密码,服务器应该告诉用户密码错误,并再次进行尝试。 3. 403 禁止访问 表述参见RFC 7231[2]。403状态代码表示服务器已理解了客户端的请求,但拒绝授权。...Spring Security 中的这两种状态 通常情况Spring Security中的401和403两种状态都是以异常的形式来进行体现的,由AuthenticationException和AccessDeniedException...仅仅当登录认证失败返回了401,其它情况的这两种异常都返回了403。 ? Spring Security异常处理体系 默认情况下他们都会被转发到异常页面。

    4.6K30

    vue3 + vite 进行axios请求封装及接口API的统一管理

    一、前言 这篇文章跟vite关系不大,下篇写环境变量配置的时候就是vite相关了,今天这里主要讲一下在vue3中axios的实战用法以及Api的统一管理,手把手教学望各位在这里能碰擦出灵感的火花,放飞五彩的思绪...二、目录结构 src目录下新建api文件, api.ts 进行接口API的统一管理 axios.ts 封装请求配置拦截器 status.ts 管理接口返回状态码 三、axios.ts 代码内逐行解释.../status"; // 引入状态码文件 import { ElMessage } from 'element-plus' // 引入el 提示框,这个项目里用什么组件库这里引什么 // 设置接口超时时间...60000; // 请求地址,这里是动态赋值的的环境变量,下一篇会细讲,这里跳过 // @ts-ignore axios.defaults.baseURL = import.meta.env.VITE_API_DOMAIN...: message = "未授权,请重新登录(401)"; break; case 403: message =

    20.4K61

    OpenAPI 标准规范,了解一下?

    对于响应返回的格式,JSON 因为它的可读性、紧凑性以及多种语言支持等优点,成为了 HTTP API 最常用的返回格式。因此,最好采用 JSON 作为返回内容的格式。...一般用在异步处理的情况,响应 body 中应该告诉客户端去哪里查看任务的状态 204 No Content 请求已经处理完成,但是没有信息要返回,经常用在 PUT 更新资源的时候(客户端提供资源的所有属性...401 Unauthorized 当前请求需要身份验证。 403 Forbidden 服务器已经理解请求,但是拒绝执行它。...[9]状态码,并在 body 中说明具体的错误信息;而没有被授权访问的资源操作,需要返回 403 Forbidden[10] 状态码,还有详细的错误信息。...Unauthorized: https://httpstatuses.com/401 [10] 403 Forbidden: https://httpstatuses.com/403 [11] 404

    3.4K41

    【.NET Core 3.0】 46 ║ 授权认证:自定义返回格式

    一、两种返回格式的思考 在上边的文章中呢,我和某大佬基于返回格式简单的表明了下个人的立场,其实我自己也懂,无非就那么两个情况: 1、完全基于 HTTP 返回格式状态码 说这个可能有点儿抽象,我举个例子大家就懂了...二、自定义授权认证返回格式 1、复杂的策略授权 那既然说到了返回格式,肯定得有一个场景,那我就用我的复杂策略授权 PermissionHandler.cs 来举例子,大家平时也都用过,我在本周三的直播中...简单来说,就是获取当前 token 的角色信息和访问的URL地址,做匹配和判断,判断是否有权限,有,就 succeed,没有就 failed(这里可能是 401 ,也可能是403)。...当没有登录的时候,就是 没有登录,或者token过期的时候,我们就 failed,会自动返回 401; 当token还有效,但是不匹配Role 和 URL 的时候,我们返回 failed,会自动返回 403...状态码; 这里截图部分代码,注意下,这里如果你之前写其他返回内容了,要删掉,只保留 failed 和 return: 但是,虽然是返回 401 和 403了,他们是这样的,这种不好看,而且也没有具体的响应

    83320

    Fortinet SSL VPN XSS 漏洞利用脚本

    :自动分析服务器响应,判断 payload 是否被成功反射状态码识别:能够识别常见的 HTTP 状态码(403、401、500)并提供相应的提示友好的用户界面:提供清晰的命令行参数和运行时反馈安全警告抑制...vpn.example.com注意:脚本会自动去除 URL 末尾的斜杠使用示例检测单个目标:python3 exploit.py -u https://vpn.company.com运行结果说明:如果响应中包含...prompt("mitsec"),则表示 XSS payload 被成功反射状态码为 403、401 或 500 时,可能表示存在 WAF 或其他防护机制脚本会显示响应内容的前 500 个字符供用户检查典型使用场景渗透测试中对..., 401, 500]: print("[!]...响应处理逻辑# 响应状态码处理逻辑if status in [403, 401, 500]: # 访问被拒绝或服务器错误 print("[!]

    19510

    HTTP 响应状态码全解

    当我们进行 API 测试时,通常首先会检查 API 调用返回的响应的状态码。这就要求我们必须熟悉那些最常见的 HTTP 状态码,以便我们能够更快地识别问题。...100 继续 101 交换协议中 102 处理中 2×× 请求成功响应状态码 2xx(Successful)类状态代码表示客户端的请求已被成功接收、理解和接受。 200-正常,状态代码表示请求已成功。...204-无内容,状态代码指示服务器已成功完成请求,并且在响应有效载荷主体中没有要发送的附加内容。...304-未修改 300-多种选择 303-参见其他 305-使用代理 307-临时重定向 308-永久重定向 4×× 客户端错误 4xx(客户端错误)类状态代码表示客户端似乎出错了。...401 未经授权 401(未授权)状态码表示该请求尚未应用,因为它缺少目标资源的有效身份验证凭据。 403 禁止 403(禁止)状态代码表示服务器理解请求但拒绝授权。

    4.3K30

    http响应码简介

    http响应码简介 1 返回401 一般生产环境出现这个问题,是由于没有通过接口的登录认证。...就会出现返回码是401的情况。 2 返回403 如果生产环境请求某个接口,返回码是403,则说明目前没有访问资源的权限。 这种场景跟返回码是401有区别。...401着重于认证问题,即用户没有提供正确的身份验证信息。 而403则是在认证成功的基础上,用户没有足够的权限去访问请求的资源。 要解决这个问题,我们需要给接口的调用方,分配相应的访问权限。...如果没有通知所有的接口调用方,都可能会出现请求接口返回码为404的情况。 还有一种可能也会导致请求接口报404的问题,接口地址之前注册到了API网关中,但API网关的配置出现了问题。...5 返回500 如果请求的接口,返回码为500,一般是出现了服务的内部错误。 一般网关层会对接口的返回值做一次封装,不会返回真正的异常信息。 我们只能查看接口的错误日志,来定位和排查问题。

    68810

    我们必须要知道的RESTful服务最佳实践

    实际上在工作中对api接口规范、命名规则、返回值、授权验证等进行一定的约束,一般的项目api只要易测试、足够安全、风格一致可读性强、没有歧义调用方便我觉得已经足够了,接口是给开发人员看的,也不是给普通用户去调用...这位大神牛逼的地方在于2000年那时候发表的论文,应该没被广泛关注,那时候的网页前端后端都是融合在一起,接口服务这些东西即使存在这种概念,都没地方发挥作用,好的东西经得起时间的考验,就像唐诗宋词几千年都会有人读,而什么郭敬明的什么小说我估计...HTTP Method 详细解释 返回状态码 GET 获取对象或集合 200成功、401没有授权、403访问禁止、404没有资源、参数错误、406请求格式不正确、410资源被删除、500服务器内部错误...POST 新增一条数据 201创建成功、422新增数据验证错误、(401、403、404、406、500) DELETE 删除一条数据 204删除成功、(401、403、404、406、500) PATCH...更新实体部分信息 201更新成功、422验证数据错误(401、403、404、406、500) PUT 更新实体所有信息除ID外 201更新成功、422(401、403、404、406、500) 6

    1.6K30

    聊一聊接口测试如何设计有效的错误响应测试用例

    接口能够正确处理各种错误情况,返回合适的错误响应,这样做的目的应该是提高系统的稳定性和用户体验,避免因为错误的处理不当导致系统崩溃或者数据泄露。...这些都属于输入验证的错误,应该返回4xx的状态码,并附带具体的错误信息。还有资源相关的错误,比如访问不存在的资源,或者尝试操作其他用户的资源,这时候需要404或403。...@#)、SQL 或 XSS 攻击字符串,验证接口过滤并返回 400。b. 认证与权限错误测试点:无效 Token:使用过期或伪造的 Token,验证返回 401 Unauthorized。...权限不足:普通用户尝试访问管理员接口,返回 403 Forbidden。认证方式错误:缺失 Authorization 头或使用错误的认证类型(如 Basic 代替 Bearer),返回 401。...安全性与敏感信息避免在错误响应中暴露敏感信息(如数据库错误详情、服务器路径),防止信息泄露。三、测试用例设计模板四、工具与自动化实践工具选择:Postman/Newman:手动或自动化执行测试集合。

    1K10

    13 个设计 REST API 的最佳实践

    在响应中返回错误详情 当 API 服务器处理错误时,如果能够在返回的 JSON body 中包含错误信息,对于接口调用者来说,会一定程度上帮助他们完成调试。...你可能知道,HTTP 中你可以返回带有 200 状态码的错误响应,但这是十分糟糕的。不要这么做,你应当返回与返回错误类型相一致的具有一定含义的状态码。...当然可以,不过让我讲一个故事: 我曾经使用过一个 API,对于它返回的所有响应的状态码均是 200 OK,同时通过响应数据中的 status 字段来表示当前的请求是否成功,比如: {...正因为这样,我不得不在检查响应状态码正确的同时,还需校验这个具有特殊含义的 status 字段的值,才可以放心的处理响应返回的 data。...分清 401 和 403 当我们遇到 API 中关于安全的错误提示时,很容易混淆这两个不同类型的错误,认证和授权(比如权限相关)—— 老实讲,我自己也经常搞混。

    4.3K20

    如何设计出优秀的Restful API?

    服务器应始终返回正确的状态代码。 很多人喜欢把错误信息放在返回值中,典型的Code和Message,其实比较Low。...2xx(成功类别) 200 Ok表示GET,PUT或POST成功的标准HTTP响应。 201 Created每当创建新实例时,都应返回此状态代码。...401 Unauthorized表示不允许客户端访问资源,并应使用所需凭据重新请求。 403 Forbidden表示请求有效且客户端已通过身份验证,但不允许客户端出于任何原因访问该页面或资源。...- 6,使用HTTP自身的方法表示增删改查资源, GET:查询,POST:新增,PUT:更新,DELETE:删除 7,合理使用HTTP状态码,200,201,400,401,403,500。...比如401表示用户身份认证失败,403表示你验证身份通过了,但是无权限操作资源。 在此,祝大家设计出优秀的Restful API!

    1.4K10

    ASP.NET JWT认证失败响应:从默认到自定义的优雅改造

    背景 在之前的文章《一个简单的ASP.NET一致性返回工具库》 中,我们介绍了 Sang.AspNetCore.CommonLibraries 这一通用库,它通过统一API响应模型和标准化的提示页面,显著提升了...然而,当项目集成JWT(JSON Web Token)认证时,默认的授权失败响应(401/403状态码+www-authenticate头)可能与团队约定的“业务状态码优先”规则产生冲突。...例如,某些团队要求所有接口必须返回HTTP 200状态码,并通过自定义的status字段(如401表示未授权)标识业务状态。...比如与“200派”的冲突,若团队强制要求所有接口返回HTTP 200,并通过status字段标识状态(如status=401),默认的401/403响应会破坏这种约定。 3....自定义响应:实战改造 这里我们需要使用的核心武器是 JwtBearerEvents ,ASP.NET Core的JWT认证模块提供了JwtBearerEvents事件钩子,允许在以下场景中拦截请求并自定义响应

    75500
    领券