Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security Spring安全性:推迟到HTTP基本身份验证之前的IP地址白名单_Spring Security_Basic Authentication - Fatal编程技术网

Spring security Spring安全性:推迟到HTTP基本身份验证之前的IP地址白名单

Spring security Spring安全性:推迟到HTTP基本身份验证之前的IP地址白名单,spring-security,basic-authentication,Spring Security,Basic Authentication,我有一个可通过servlet访问的URL,我已经使用SpringSecurity的DaoAuthenticationProvider锁定了该URL。我现在要求某些传入IP地址必须被列入白名单,因此不需要进行身份验证 如果IP地址与已知IP地址匹配,我可以通过覆盖DaoAuthenticationProvider的Authentication方法并绕过超类的实现来轻松解决这个问题,但这只在请求的发送方提供用户名和密码时才起作用(即使这是胡说八道)。否则,不会调用提供程序 最好的方法是什么?如果传入

我有一个可通过servlet访问的URL,我已经使用SpringSecurity的DaoAuthenticationProvider锁定了该URL。我现在要求某些传入IP地址必须被列入白名单,因此不需要进行身份验证

如果IP地址与已知IP地址匹配,我可以通过覆盖DaoAuthenticationProvider的Authentication方法并绕过超类的实现来轻松解决这个问题,但这只在请求的发送方提供用户名和密码时才起作用(即使这是胡说八道)。否则,不会调用提供程序


最好的方法是什么?如果传入已知IP地址,我是否应该使用筛选器绕过身份验证过程?

我认为惯用的Spring安全方法是实现预身份验证筛选器,当客户端位于白名单中时,该筛选器将使用有效的
身份验证对象填充安全上下文。您可以从头开始实现这样一个过滤器(例如)或使用(尽管对于您的任务来说,它似乎过于复杂)。

您可以使用吗?我们这样做似乎是为了类似的情况

<security:intercept-url pattern="/services/**" access="hasIpAddress('192.168.1.0/24')"/>


谢谢,这确实是一种更好的做事方式。我删除了自定义的DaoAuthenticationProvider,扩展了GenericFilterBean,并将身份验证对象添加到了上下文中。我不认为您可以在运行时以这种方式修改IPs?我们如何使用控制器中特定映射的注释来实现这一点?