Spring Security 把自己的IP加入白名单
时间: 2024-02-22 09:49:34 浏览: 60
Spring Security 并没有提供加入白名单的功能,但是可以通过配置实现类似的效果。
一种方法是在 WebSecurityConfigurerAdapter 中配置一个 IPFilter,只有符合要求的 IP 才能访问网站。例如,以下代码将允许 192.168.1.100 和 192.168.1.101 的 IP 访问网站:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.addFilterBefore(new IPFilter(Arrays.asList("192.168.1.100", "192.168.1.101")), BasicAuthenticationFilter.class)
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
}
}
```
另一种方法是在 Spring Security 的表达式中使用 IP 地址。例如,以下代码将允许 192.168.1.100 和 192.168.1.101 的 IP 访问网站:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.access("hasIpAddress('192.168.1.100') or hasIpAddress('192.168.1.101')")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
}
}
```
无论哪种方法,都需要注意 IP 地址可能会被伪造,因此应该使用 HTTPS 进行通信,并在服务器端进行其他安全措施。
阅读全文