将 spring 项目中的 ip 列入白名单
White-listing an ip in spring project
我有一个简单的 java 应用程序需要登录。它有一个扩展 WebSecurityConfigurerAdapter 的 SecurityConfig class。我在那里实施了几种方法
void configure(WebSecurity web)
void configure(HttpSecurity http)
在 configure(WebSecurity web) 方法中,我忽略了某些 URL 的
的身份验证
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers(HttpMethod.POST, "/examplePattern");
}
我在这个 project.Now 中有一些服务端点我需要将某个 ip(我有一个字符串数组)列入白名单,它应该只能访问一个特定的端点。这是因为对端点的所有调用都经过用户登录验证。
基本上我需要的是,如果从特定 IP 调用某个端点,请求应该到达控制器,无需身份验证
我对这个领域很陌生,所以如果你有解决这个问题的方法,请告诉我。
提前致谢
您需要如下基于 IP 地址的身份验证提供程序:
@Service
public class IPAddressBasedAuthenticationProvider implements AuthenticationProvider {
@Autowired
private HttpServletRequest request;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String ipAddress = request.getRemoteAddr();
// Check against your array.
//return created authentication object (if user provided valid credentials)
}
}
希望对您有所帮助。
我有一个简单的 java 应用程序需要登录。它有一个扩展 WebSecurityConfigurerAdapter 的 SecurityConfig class。我在那里实施了几种方法
void configure(WebSecurity web)
void configure(HttpSecurity http)
在 configure(WebSecurity web) 方法中,我忽略了某些 URL 的
的身份验证public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers(HttpMethod.POST, "/examplePattern");
}
我在这个 project.Now 中有一些服务端点我需要将某个 ip(我有一个字符串数组)列入白名单,它应该只能访问一个特定的端点。这是因为对端点的所有调用都经过用户登录验证。
基本上我需要的是,如果从特定 IP 调用某个端点,请求应该到达控制器,无需身份验证
我对这个领域很陌生,所以如果你有解决这个问题的方法,请告诉我。
提前致谢
您需要如下基于 IP 地址的身份验证提供程序:
@Service
public class IPAddressBasedAuthenticationProvider implements AuthenticationProvider {
@Autowired
private HttpServletRequest request;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String ipAddress = request.getRemoteAddr();
// Check against your array.
//return created authentication object (if user provided valid credentials)
}
}
希望对您有所帮助。