带有路径变量和蚂蚁匹配器的 Spring Security 自定义方法

Posted

技术标签:

【中文标题】带有路径变量和蚂蚁匹配器的 Spring Security 自定义方法【英文标题】:Spring Security custom method with path variable and ant matcher 【发布时间】:2014-12-12 19:42:09 【问题描述】:

我正在使用带有 java 配置的 Spring Boot、Web MVC 和 Spring Security。我的 URL 是 'RESTful' 并且想要添加自定义授权方法。

例如:

.antMatchers("/path/*/**").access("@myBean.authorise()")

我想实现这样的目标:

.antMatchers("/path/token/**").access("@myBean.authorise(token)")

我知道我可以传入HttpServletRequest 并手动剥离路径,但想避免这种情况!也不太热衷于方法级别的安全性,宁愿将配置保存在一个地方,因为我有很多控制器。

谢谢!

【问题讨论】:

【参考方案1】:

您可以访问路径变量,只需在它们前面加上#。在您的情况下,正确的语法是:

.antMatchers("/path/token/**").access("@myBean.authorise(#token)")

我不确定这是什么时候引入的,但我知道它现在已受支持。参考:https://docs.spring.io/spring-security/site/docs/4.2.x/reference/html/el-access.html

【讨论】:

如果有人在寻找上面分享的过期链接,这里是指南:docs.spring.io/spring-security/site/docs/4.2.x/reference/html/…

以上是关于带有路径变量和蚂蚁匹配器的 Spring Security 自定义方法的主要内容,如果未能解决你的问题,请参考以下文章

Spring security - 创建 2 个具有特定匹配器的过滤器链

activemq、jms 主题和带有选择器的订阅者

Spring Web MVC:对请求参数和路径变量使用相同的请求映射

POJ3565

如何使用带有 Spring 的 Gradle 依赖管理插件的分类器的 dependencyManagement 版本?

SwiftUI - 绑定到选择器的变量与选择器的选定值不匹配