spring-security - 在 Spring Security 中对同一个 url 使用 2 个不同的规则(如 or())
问题描述
我需要保护 url,因此有两种可能的访问方式:
- 客户有一个特定的IP
- 或者客户端需要登录
因此,我需要为单个 URL 提供两个规则,使用类似于以下or
方法的方法:
.antMatchers("/url/**").authenticated().or().hasIpAddress("192.bla.bla")
有没有办法做到这一点?
解决方案
您可以使用 SPEL 组合它们。
String expression = "hasIpAddress('127.0.0.1') or hasRole('ROLE_USER')";
http
.authorizeRequests()
.antMatchers("/home").access(expression)
推荐阅读
- sitecore - Sitecore 9.0.2 安装证书问题
- c# - 带有 var 的匿名类型给出错误 CS0825
- google-api - Google Search Console API 是否已弃用?
- java - 在运行 Spring Boot 应用程序时出现异常
- flutter - Flutter 上传视频有进度,没有 MultipartRequest
- bash - Whiptail:仪表运行时如何处理错误?
- python - Seaborn 热图...白色的底行和右列
- rest - 将 Postman 与 Apache Drill 与 MySQL 连接时出现问题
- fluentd - Fluentd td-agent.log 文件大小不断增加
- javascript - 在等待突变观察者的响应时暂停javascript for循环?