在 Spring Webflux 中禁用给定路径的身份验证和 csrf?

2024-03-23

我想为除一个 url 之外的整个应用程序启用 oauth2。

我的配置:

@EnableWebFluxSecurity
class SecurityConfig {

    @Bean
    fun securityWebFilterChain(http: ServerHttpSecurity) =
        http
            .authorizeExchange()
            .pathMatchers("/devices/**/register").permitAll()
            .and()
            .oauth2Login().and()
            .build()
}

应用程序.yml:

spring.security.oauth2.client.registration.google.client-id: ...
spring.security.oauth2.client.registration.google.client-secret: ...

所有路径都受到 oauth2 保护,但问题是当我调用允许的端点时/devices/123/register然后我得到的回应是:

CSRF Token has been associated to this client

我需要以不同的方式配置该路径吗?


permitAll是一个仅关于权威的声明——所有典型的 Web 应用程序漏洞仍然受到缓解,如 XSS 和 CSRF。

如果你试图表明这一点/devices/**/register应该被 Spring Security 完全忽略,那么你可以这样做:

http
    .securityMatcher(new NegatedServerWebExchangeMatcher(
        pathMatchers("/devices/**/register")))
    ... omit the permitAll statement

但是,如果您仍然希望该端点获取安全响应标头,而不是 CSRF 保护,那么您可以执行以下操作:

http
    .csrf()
        .requireCsrfProtectionMatcher(new NegatedServerWebExchangeMatcher(
            pathMatchers("/devices/**/register")))
    ... keep the permitAll statement
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spring Webflux 中禁用给定路径的身份验证和 csrf? 的相关文章

  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho
  • 从脚本内更改自动热键托盘图标

    如何从 Autohotkey 脚本中将托盘图标更改为 my ico 例如 当脚本暂停时 为此 我在托盘菜单中提出了自己的 暂停脚本 菜单项 SingleInstance ignore Menu Tray Tip AutoCase 0 11
  • IE9-11 检测变换样式:preserve-3d

    我为一个项目制作了一个 3d 类型的菜单 自然 IE 会引起问题 因为 IE10 即使 3d 变换工作 也不支持变换样式 preserve 3d 我尝试了解决方法 通过对 3d 菜单容器的每个子元素应用变换 但至少可以说 动画看起来很糟糕
  • 文本溢出:省略号显示不同的字符

    我这里遇到了一些 CSS 问题 看这张图片 https www flickr com photos 125543025 N07 saved 1 在此图像中 我为文本 INTENSE TRAINING 添加了 CSS 样式 sample st
  • 如何制作过期/签名视频嵌入网址

    我是新来的 正在学习网络开发等等 我只知道如何将我的视频嵌入网站中 任何菜鸟都可以轻松获得源代码 他们也可以嵌入它 但在许多网站中 视频 src 均使用重定向器链接进行编码 例如 它会在一段时间后过期 在本例中是一天 我了解到这是一个签名网
  • Android Espresso 单击按钮时出现错误

    我正在尝试使用 espresso 框架为 Android 应用程序编写一些 UI 测试 现在我只是检查启动屏幕上是否存在所有元素 然后尝试单击登录按钮 单击按钮时 测试由于错误而失败 我似乎无法理解为什么会发生这种情况 我的测试代码是 Ru
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code
  • bash:gitolite:找不到命令

    我正在尝试使用 Gitolite 在 Gitlab 中创建一个新分支 我完成安装步骤 当我遇到 设置 gitolite 部分时 我遇到了麻烦 我跟着这个link http sitaramc github com gitolite setup
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • If else 在 Web 网格列中

    如何在 webgrid 列中添加条件 if else grid GetHtml tableStyle table table bordered columns grid Columns grid Column RealName Name g
  • Azure Functions 计时器触发器线程安全

    我想知道是否有人知道如果您在 Azure 函数上设置了 Cron 设置 如果其任务执行时间超过 5 分钟 则每 5 分钟运行一次 会发生什么情况 它备份吗 或者我应该实现一个锁定功能 以防止某些东西 例如在循环中 处理先前调用已经处理的数据
  • SimpleIoC - 在缓存中找不到类型:Windows.UI.Xaml.Controls.Frame

    第一次由 SimpleIoC 实例化我的 ViewModel 时 我遇到了以下错误 我相信我已经按应有的方式设置了容器 但由于某种原因 我仍然收到以下错误 任何想法或帮助将非常感激 Microsoft Practices ServiceLo
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • React 错误:目标容器不是 DOM 元素

    我刚刚开始使用 React 所以这可能是一个非常简单的错误 但我们开始吧 我的html代码非常简单 load staticfiles
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 属性“use”在类型“typeof...”上不存在,属性“extend”在类型“typeof”上不存在

    我第一次使用 TypeScript 构建我的 vue 应用程序 但我一直坚持这个Property xxx does not exist on type typeof问题 我研究过类似的问题 但似乎没有一个有效 我在 vue 3 0 0 0
  • 无法编译 WordCount.java

    mark maestro1 usr lib hadoop wordcount classes javac classpath usr lib hadoop hadoop common 2 0 0 cdh4 0 1 jar usr lib h
  • Powershell:返回具有最大编号的文件名

    假设我有一个像这样的文件名列表 Get ChildItem Antarctica Data xls Antarctica Data 03625516 xls Antarctica Data 84327262 xls Antarctica D
  • AspectJ 编织 Maven 模块

    我有一个项目 有多个 Maven 模块 其中之一包含我的方面 我如何获取各个方面并编织多个 Maven 模块 AspectJ Maven 插件的文档有点稀疏 无法找到很多示例 我尝试将aspectj 插件放入父pom 中 但它似乎没有应用其
  • 如何将 Excel 工作簿写入 .NET 中的 MemoryStream?

    如何将 Excel 工作簿写入MemoryStream而不先将其保存到文件系统 内的所有选项Microsoft Office Interop Excel WorkBook保存选项采用文件名 我对 PIA 以及将 Excel 文件存储在文档存
  • “OneHotEncoder”对象没有属性“get_feature_names”

    我正在尝试使用 scikit learn 的 OneHotEncoder 对象的 get feature names 函数提取特征 但它向我抛出一个错误 OneHotEncoder 对象没有属性 get feature names 下面是代
  • 带/不带类的回调函数指针 C++

    我被困 我正在尝试形成一个函数 它将吃掉无类函数指针和对象中的函数指针 这是我当前的代码 希望能解释更多 它应该在 Arduino 上运行 所以我不能使用大型库 首先 我在 Arduino 上使用这个库 SimpleTimer A time
  • Flyway 仅在我的 jar 文件中找不到迁移

    我有类似的问题this https stackoverflow com questions 11226070 flyway not finding the migrations in a jar file但我已经迁移到版本 2 1 1 问题
  • 在应用程序和 Web 之间共享数据库

    我参与了一个必须从现有数据库检索查询的应用程序 该数据库必须在远程服务器中的 php 中实现 并且将是管理员必须将内容插入共享数据库的地方 但我不知道如何正确实现或什么是最佳解决方案 我正在考虑使用 php 创建一个 sqlite 数据库并
  • ld:找不到 -lIOKit.A clang xcode 的库

    我使用项目的 Target 部分将 libIOKit A dylib 库包含到我的 Xcode 项目中 如下图所示 该项目已构建并运行良好 我在编译状态中遇到一些有线错误 ld 找不到 lIOKit 的库 A clang 错误 链接器命令
  • 将 Entity Framework Data First 与 ODBC 和 MySQL 结合使用

    我怎样才能创建一个ADO NET 实体数据模型使用 ODBC 连接 MySQL 我在本地主机上安装了 MySQL 3 51 ODBC 驱动程序 并创建了一个测试 MySQL 数据库 然后使用 VS2013 我使用 ODBC 数据源创建到我的
  • 如何从函数中实时捕获打印内容?

    我想捕捉所有prints 并执行诸如返回它们之类的操作 但继续运行该函数 我找到了这个方法 但它只返回print代码完成后 f io StringIO with redirect stdout f my code return f getv
  • Lua:setfenv() 与 _ENV

    Lua 切换有什么大不了的setfenv to ENV 在各种 新增内容 资料中 这一举措被认为是 Lua 5 1 和 5 2 版本之间最重要的变化之一 但是 PIL 和其他地方给出的示例可以修剪为以下内容 Lua 5 1 Lua 5 2
  • 提交了我的 php 表单,但没有发送任何值

    由于某种原因 这些选项没有显示在我的电子邮件中 我可以很好地发送电子邮件 我可以看到正文及其所有评论 但看不到用户所做的任何条目 我知道我做错了什么 但我无法确定它是什么 另外 如果它看起来很糟糕 请随意嘲笑我 ToEmail email
  • 可以使用存储过程中的动态 SQL 创建 MySQL 触发器吗?

    是否可以使用从存储过程中动态生成的 SQL 在 MySQL 中创建触发器 我通过准备语句在过程中执行其他动态构造的查询 但是当我尝试使用相同的方法创建触发器时 出现以下错误 错误代码 1295 准备好的语句协议尚不支持此命令 From Bu
  • Grepping 查找重叠的模式匹配

    这就是我正在运行的 grep o tcb lt lt lt r t c q c b b 输出是 t b 但我想得到 t c b 我不希望匹配没有前面的 b 或没有后面的 c 因为 tcb 应该在 r t c q b b r t c q b
  • 连接的 Delphi 字符串是否保存在保留对该字符串的引用的隐藏临时变量中?

    我试图了解 Delphi 服务器应用程序中的内存问题 最初我怀疑存在彻底的泄漏 但现在相信我们看到内存挂起的时间比应有的时间长 因为编译器在用 动态连接字符串时使用了隐藏的临时值 导致痛苦的自由空间内存碎片 背景 这是 Windows 上的
  • git:为什么 git diff 没有显示任何差异?

    如果我在我的存储库上运行 git status 它会给出 On branch master Changes to be committed use git reset HEAD
  • 如何静态识别动态堆分配?

    我即将在我的应用程序中删除 尽可能多的 动态堆分配 我想知道如何确保我没有错过任何内容 目前 我正在寻找一种方法来轻松甚至自动判断代码的任何 或哪些 部分可能会调用以下标准实现new delete or malloc free无需动态跟踪分
  • 在 Spring Webflux 中禁用给定路径的身份验证和 csrf?

    我想为除一个 url 之外的整个应用程序启用 oauth2 我的配置 EnableWebFluxSecurity class SecurityConfig Bean fun securityWebFilterChain http Serve