Spring security:在 3.1 中,仅针对“GET”请求绕过安全过滤器

2024-05-27

我希望我的服务仅对传入的 POST/PUT/DELETE 请求执行身份验证,并绕过任何 GET 请求。 Spring 版本低于 3.1,具有 ‘filters=”none”’ 属性,可用于绕过特定 URL 模式的所有安全过滤器。在 3.1 中,'filters=”none”' 已被弃用,替代解决方案是对“http”元素使用“security=”none”' 属性。这不支持基于传入请求类型(GET/PUT/POST/DELETE)的配置。

我使用的是 Spring 3.1.1,当前配置如下:

<!-- Just un-comment any resource if you don't want authentication to be done on them -->
<http pattern="/base/version" security="none"/>

<!-- Secure resources -->
<http create-session='stateless' entry-point-ref="tokenAuthenticationEntryPoint">
  <custom-filter position="PRE_AUTH_FILTER" ref="tokenAuthenticationFilter" />
  <intercept-url pattern="/v1/abc/**" method="GET" filters="none"/>  //This doesn’t work currently
  <intercept-url pattern="/v1/abc/**" method="POST" access="ROLE_USER"/>
  <intercept-url pattern="/v1/abc/**" method="PUT" access="ROLE_USER"/>
  <intercept-url pattern="/v1/abc/**" method="DELETE" access="ROLE_USER"/>
  <intercept-url pattern="/**" access="ROLE_USER" />
</http>

如何绕过 Spring 3.1 中的pattern="/v1/abc/**" method="GET" 的安全过滤器?


我找到了解决该问题的方法 - 使用基于表达式的访问控制,我使用了 access="permitAll" 来配置授权而不禁用过滤器。

<!-- Just un-comment any resource if you don't want authentication to be done on them -->
<http pattern="/base/version" security="none"/>

<!-- Secure resources -->
<http create-session='stateless' entry-point-ref="tokenAuthenticationEntryPoint" use-    expressions="true">
  <custom-filter position="PRE_AUTH_FILTER" ref="tokenAuthenticationFilter" />
  <intercept-url pattern="/v1/abc/**" method="GET" access="permitAll"/>
  <intercept-url pattern="/v1/abc/**" method="POST" access="hasRole('ROLE_USER')"/>
  <intercept-url pattern="/v1/abc/**" method="PUT" access="hasRole('ROLE_USER')"/>
  <intercept-url pattern="/v1/abc/**" method="DELETE" access="hasRole('ROLE_USER')"/>
  <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
</http>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring security:在 3.1 中,仅针对“GET”请求绕过安全过滤器 的相关文章

随机推荐

  • 在字符周围交换列表/字符串 python

    我想在指定索引周围交换列表或字符串的两个部分 例如 1 2 3 4 5 2 应该返回 4 5 3 1 2 我应该只有一行代码 它适用于字符串 但我得到 只能将列表 不是 int 连接到列表 当我尝试使用列表时 def swap listOr
  • document.referrer 跨浏览器兼容吗?

    我想使用 document referrer 进行非正式的推荐人检查 该元素跨浏览器兼容吗 当尝试引用文档对象时 浏览器会抛出错误吗 The document referrerDOM 规范中描述了属性 http www w3 org TR
  • 为什么不能收集一定范围的字符?

    我正在尝试生成一个包含小写 ASCII 字符的向量 这种更复杂的方法有效 let ascii lowercase b a b z map b b as char collect
  • 序列化匿名类型

    我想将匿名类型变量转换为 byte 我该怎么做 我尝试过的 byte result var my new Test a1 Value 0 BinaryFormatter bf new BinaryFormatter using Memory
  • 为什么不能在循环或嵌套函数内调用 React Hooks?

    React Hooks 文档 https reactjs org docs hooks rules html only call hooks at the top level说不要在循环 条件或嵌套函数内调用 Hook 我知道执行顺序很重要
  • $1 [QSA,L] 在我的 .htaccess 文件中意味着什么?

    我需要改变我的 htaccess有两行我不明白 RewriteCond REQUEST FILENAME l RewriteRule index php url 1 QSA L 我什么时候应该使用这些线 不是提供完整教程的地方 但这里是简短
  • 使用 Node.js 捕获延迟加载页面的屏幕截图

    我正在寻找一种方法 可以在每次更改时对长网页进行屏幕截图 我想为此使用 Node js 我的问题是关于如何渲染带有图像的完整页面并将其保存到磁盘和图像文件 网页上的大多数图像都是延迟加载的 所以我想我需要先向下滚动整个页面 然后再进行屏幕截
  • Django Admin:引用用户的ForeignKey和ManyToManyField关系的排序

    我有一个使用 Django 的应用程序UserProfile扩展内置的 DjangoUser模型 看起来有点像 class UserProfile models Model user models ForeignKey User uniqu
  • 使用 Spring Boot 进行 Kafka 流

    我想在我的 Spring Boot 项目中使用 Kafka Streams 实时处理 所以我需要 Kafka Streams 配置或者我想使用 KStreams 或 KTable 但我在互联网上找不到示例 我做了生产者和消费者 现在我想实时
  • Matlab:如何读取以逗号作为小数分隔符的数字?

    我有很多 数十万 相当大 gt 0 5MB 的文件 其中数据是数字 但以逗号作为小数分隔符 使用像这样的外部工具对我来说是不切实际的sed s g 当分隔符是点时 我只使用textscan fid f f f 但我看不到更改小数点分隔符的选
  • 在搜索栏中输入查询并抓取结果

    我有一个数据库 其中包含不同书籍的 ISBN 号 我使用 Python 和 Beautifulsoup 收集了它们 接下来我想为书籍添加类别 书籍类别有一个标准 一个网站叫https www bol com nl https www bol
  • Android 第一个应用程序教程问题

    我一直在尝试让它工作 甚至完全按照教程所述复制和粘贴代码 但它似乎不起作用 我知道问题出在 MainActivity 或 DisplayMessageActivity 中 但我看不出出了什么问题 我还将 DisplayMessageActi
  • 尝试添加号码时无法使用 +

    在我选择选项 1 并添加数字 如 100 后 结果如下 100100 这是代码 var userAmount var userMoney 100 var totalMoney alert 1 Add alert 2 Subtraction
  • 如何正确定义析构函数

    我对 C 以及一般的编程 比较陌生 所以如果问题没有立即完全清楚 请原谅我 我所拥有的是一个程序 其中创建了内部定义的类 让我们称之为 class1 的一定数量的对象 程序运行得很好 对象也做了它们应该做的事情 我当前试图解决的问题如下 这
  • 使用查询时间排名的复杂“特色产品”模型(可选过滤器)

    我有一个products显示过滤结果的索引category pages 对于给定的category 任意数量的products可能会被标记为featured 表示它首先显示 When products显示为category 只有一个特色产品
  • 对列表中的每个数值列表求和

    我想将值附加到 R 中河图中的标签 我有一个值列表列表 需要它来显示节点之间的流 如下所示 edges lt list A list C 10 E 5 B list C 10 C list D 13 E 7 我知道有一个函数可以减少 或求和
  • jQuery Datepicker showAnim 没有动画

    我尝试了多种方法并在互联网上搜索 试图让动画发挥作用 但一无所获 我有日期选择器工作和日期格式选项 但没有动画 我希望使用 剪辑 选项 以下是各个文件中的内容 应用程序 js require jquery require jquery tu
  • Java ArrayList 的 (ArrayList).toString 的相反是什么?

    我正在使用toString的方法ArrayList储藏ArrayList数据到字符串中 我的问题是 我该如何走另一条路 是否有现有的方法可以解析中的数据String实例返回到ArrayList 最简洁的答案是不 没有简单的方法可以从字符串中
  • “composer”在 Windows 服务器中未被识别为内部或外部命令

    我使用的是Windows Server 2008操作系统 我下载作曲家安装程序 exe https getcomposer org download 并安装到我的电脑上 当我尝试时composer install 我收到错误 compose
  • Spring security:在 3.1 中,仅针对“GET”请求绕过安全过滤器

    我希望我的服务仅对传入的 POST PUT DELETE 请求执行身份验证 并绕过任何 GET 请求 Spring 版本低于 3 1 具有 filters none 属性 可用于绕过特定 URL 模式的所有安全过滤器 在 3 1 中 fil