Spring Security antMatchers 正则表达式
Posted
技术标签:
【中文标题】Spring Security antMatchers 正则表达式【英文标题】:Spring Security antMatchers Regex 【发布时间】:2018-07-17 05:14:45 【问题描述】:我的 spring 安全配置中已经有 antmatchers() 使用通配符。我需要从这个通配符中过滤掉“表格”。 这是我的原始代码:
.antMatchers("/api/keepSessionAlive").authenticated()
.antMatchers("/api/users/**").authenticated()
我尝试将通配符更改为正则表达式,如下所示,但它对我不起作用:
.antMatchers("/api/users/(?!forms).*").authenticated()
任何帮助将不胜感激
【问题讨论】:
请提供一些您想匹配的网址示例。仅仅说它不起作用是不够的 How to put a URL with a regular expression in Spring Java based configuration的可能重复 如果您坚持使用antMatchers
,请查看***.com/questions/27649649/…,但这是针对更具体的情况。
【参考方案1】:
请在“/users/**”antMatchers 之前添加“/users/forms”过滤器
.antMatchers("/api/keepSessionAlive").authenticated()
.antMatchers("/api/users/forms/**").authenticated()
.antMatchers("/api/users/**").authenticated()
【讨论】:
【参考方案2】:只需在其他人之前为“form”添加一个antmatcher,并将其保持为permit-all,如下所示:
.antMatchers("/api/users/form").permitAll()
.antMatchers("/api/keepSessionAlive").authenticated()
.antMatchers("/api/users/forms/**").authenticated()
.antMatchers("/api/users/**").authenticated()
希望这会有所帮助。
【讨论】:
以上是关于Spring Security antMatchers 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security 在运行时动态添加/删除 antMatchers 和角色
Spring security antMatcher 未按预期工作
Spring Security:antMatcher 的序列未按预期工作 [重复]
Spring Security:所有端点返回状态 200 并且对约束没有响应作为 antMatchers