首页 > 解决方案 > 在 Spring Security 中对同一个 url 使用 2 个不同的规则(如 or())

问题描述

我需要保护 url,因此有两种可能的访问方式:

因此,我需要为单个 URL 提供两个规则,使用类似于以下or方法的方法:

.antMatchers("/url/**").authenticated().or().hasIpAddress("192.bla.bla")

有没有办法做到这一点?

标签: spring-security

解决方案


您可以使用 SPEL 组合它们。

String expression = "hasIpAddress('127.0.0.1') or hasRole('ROLE_USER')";
http
   .authorizeRequests()
       .antMatchers("/home").access(expression)

推荐阅读