Spring Security:授权所有请求,但来自可信子网

时间:2016-03-09 11:41:09

标签: spring spring-security

我在配置类中有这些行:

http.authorizeRequests()
        .anyRequest().authenticated();

现在我希望来自可信子网的所有请求在未经授权的情况下绕过Spring Security。

所以,我修复了我的配置:

http.authorizeRequests()
        .antMatchers("/**").hasIpAddress(127.0.0.1/24)
        .anyRequest().authenticated();

好的,私有子网内的机器到机器通信现在运行良好。 不幸的是,来自网络浏览器的授权客户每次都有401错误。

有没有办法写OR条件?

像这样:client has ip #.#.#.# OR should be authorized

1 个答案:

答案 0 :(得分:2)

hasIpAddressauthenticatedhasRole等方法适用于简单的访问规则。在它们下面,它们都调用access方法来添加表达式。您也可以自己使用它来编写更复杂的安全表达式。

http.authorizeRequests()        
    .anyRequest().access("hasIpAddress('127.0.0.1/24') or isAuthenticated()");

Spring Security参考指南中提到了this