如何在 Ocelot 的 PreAuthenticationMiddleware 中停止请求?

2024-03-25

在 ocelot 身份验证之前,我必须对请求的 jwt 进行一些检查,因此我在预认证中间件 https://ocelot.readthedocs.io/en/latest/features/middlewareinjection.html像这样:

var config = new OcelotPipelineConfiguration
{
    PreAuthenticationMiddleware = async (ctx, next) =>
    {
        var jwt = ctx.HttpContext.Request.Headers["Authorization"];

        if (jwtIsOk(jwt)) next.Invoke();
        // else ...
    }
};

app.UseOcelot(config).Wait();

而不是不调用next,是否可以返回自定义响应?

我想返回 401 错误


我认为这就是您正在寻找的:

        var configuration = new OcelotPipelineConfiguration
        {
            PreAuthenticationMiddleware = async (ctx, next) =>
            {
                if (xxxxxx) 
                {
                    ctx.Errors.Add(new UnauthenticatedError("Your message"));

                    return;
                }

                await next.Invoke();
            }
        };

在本例中,我使用的是 UnauthenticatedError(Ocelot 的类),它将以 401 结尾。还有更多类似的情况。您还可以创建自己的继承自 Ocelot.Errors.Error 的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ocelot 的 PreAuthenticationMiddleware 中停止请求? 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 重载<<的返回值

    include
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • css/ html 帮助制作像容器一样的圆桌

    任何人都可以提供如何创建基于 css 的气泡容器以便 html 进入其中的见解或示例吗 我想做一张圆桌 也就是说 我希望结果看起来像一张桌子 但边缘是圆角的 如果内部也有轻微的梯度就太好了 我在这个网站上找到了一个样本 http www s
  • 使用R中的geom_smooth()在ggplot2图例中混合填充颜色

    使用绘制两条回归曲线时geom smooth in ggplot2 为了fill颜色 图例选择置信区间相交的颜色 我确实认为当重叠区域按比例大于另一个区域时就会出现这种行为 但是我发现这是非常不受欢迎的 因为读者能够推断出 变暗 区域是 C
  • 有条件地填充 voronoi 段/颜色

    我正在尝试根据 d lon 值有条件地为这些 voronoi 段着色 如果是正数 我希望它是绿色的 如果是负数 我希望它是红色的 然而目前它正在将每个段返回为绿色 即使我将 它仍然返回绿色 活生生的例子在这里 https allaffect
  • Visual Studio 2010 是否支持 Sharepoint 2007 开发?

    我注意到在 VS2010 beta 2 中 所有模板仅适用于 Sharepoint 2010 这是真的 如果是这样 VIeWS 1 3 至少可以与 VS2010 一起使用吗 据我记得在 SharePoint 拉斯维加斯会议上的会议 新的 很
  • 如何在 C# 中使用 itextsharp 创建带有泰米尔字体的 PDF 文件?

    我们正在 C 应用程序中通过传递泰米尔语文本 印度语言之一 来创建 pdf 文件 因此 我已经为我的泰米尔语字体安装了 AVVAIYAR TTF 泰米尔语字体之一 字体 但是当我运行下面提到的命令时pgm 创建的pdf文件不包含任何泰米尔字
  • 第一个承诺完成后,Angular $q.all 被调用

    我试图使用 q all 等待所有承诺都得到解决 但它是在第一个承诺完成后调用的 我做错了什么 function sendAudits audits var promises scope sendAudits progress 0 angul
  • 使用 jquery 将列表拆分为大小相等的子列表的最有效方法

    使用 jQuery 分割列表最有效的方法是什么 ul class columnar li li li li ul 分成几个子列表 ul class column1 li li li li ul ul class column2 li li
  • Java 上的 JSON 与 MultiValueMap

    我想构建一个像这样的 JSON Id 33396 Actions Key 5 Value Test Key 6 Value Test 2 我正在使用 MultiValueMap 这是我的代码 MultiValueMap
  • iOS swift 删除 UITableView 单元格分隔符空间

    我正在尝试删除 tableView 分隔符 我通过将分隔符样式设置为 none 来做到这一点 这会删除分隔符 但会在单元格之间留下空间 我的问题是如何消除单元格之间的空间 任何帮助 将不胜感激 In awakeFromNib功能设定UITa
  • 仅使用 C++ 编写的 Android 应用程序

    是否可以仅使用 C 来制作 Android 应用程序 我不懂Java 我尝试过 Visual Studio 2019 方法 但我想我的计算机不足以模拟 Android 手机 如果您有适当的编程工具 您可以使用 C 为 Android 编写代
  • 尝试通过 jni 调用从 java 更改 Windows 鼠标光标图标

    在我的 java 应用程序中 我尝试使用具有透明度的 argb 32 位 bmp 文件更改鼠标光标 我想进行 jni 调用以从 Windows 更改它 因为在 java 中更改光标会给我一个非常糟糕的鼠标光标 所有透明度都是 0x00 或
  • 为什么无符号类型在arm cpu中效率更高?

    我正在阅读手臂手册并提出这个建议 但没有提到原因 为什么无符号类型更快 在 ARMv4 之前 ARM 没有对加载半字和有符号字节的本机支持 要加载有符号的字节 你必须LDRB然后对值进行符号扩展 LSL那就起来吧ASR它回落 这很痛苦所以c
  • 错误:在 docker 容器中导入 Postgres 数据库

    我正在 docker 容器中运行 ruby on Rails 应用程序 我想在 postgres 容器中创建并恢复数据库转储 但是我 以下是我到目前为止所做的事情 1 添加了 bash 脚本 docker entrypoint initdb
  • 登录会话超时后,Spring Security重定向到最后请求的页面

    我已经实现了 Spring Security 来登录我的门户网站 除了一个问题之外 它工作正常 我已将会话超时设置为 5 分钟 一旦发生超时 然后用户单击任何 URL 它将被重定向到注销页面 但是当用户重新认证时 用户直接登陆到最后访问的页
  • F# 基础知识:将 NameValueCollection 转换为漂亮的字符串

    学习 F 的同时尝试做一些有用的事情 所以这是一个基本问题 I have req 这是一个HttpListenerRequest 其中有QueryString属性 有类型System Collections Specialized Name
  • 如何让我的应用程序音频在说话时很好地中断 iPhone 音频

    我的 iOS 7 应用程序会在必要时发出文本声音 我想做的是让用户在我的应用程序运行时收听他的音乐或播客 或任何其他使用音频的应用程序 预期的行为是 当我的应用程序说话时 其他音频会混合或闪避 然后其他音频会立即恢复到初始级别 我尝试了很多
  • 关于SQL Server HierarchyID深度优先性能的问题

    我正在尝试在包含大约 50 000 行 将来会大幅增长 的表 dbo Message 中实现 HierarchyID 然而 检索大约 25 个结果需要 30 40 秒 根节点是一个填充符 以提供唯一性 因此每个后续行都是该虚拟行的子级 我需
  • 类似于追加行为的生成器表达式

    这更像是一个编程练习 而不是一个现实世界的问题 我正在寻找一个类似于以下行为的生成器表达式append 考虑 def combine sequence obj for item in sequence yield item yield ob
  • 如何在键盘外观上设置 Flutter 布局动画

    我正在构建一个 Flutter 应用程序 主要针对 iOS 我的一个视图有一个文本字段 当您点击它时会出现 iOS 键盘 问题是 布局不像原生 iOS 应用程序那样平滑变化 相反 即使在键盘打开动画完成之前 它也会立即跳转到最终可用的屏幕高
  • 如何在 Ocelot 的 PreAuthenticationMiddleware 中停止请求?

    在 ocelot 身份验证之前 我必须对请求的 jwt 进行一些检查 因此我在预认证中间件 https ocelot readthedocs io en latest features middlewareinjection html像这样