gpt4 book ai didi

java - 在 Spring 项目中将 IP 列入白名单

转载 作者:行者123 更新时间:2023-11-30 08:01:50 25 4
gpt4 key购买 nike

我有一个简单的带有登录功能的java应用程序。它有一个扩展了 WebSecurityConfigurerAdapter 的 SecurityConfig 类。我在那里实现了几种方法

void configure(WebSecurity web)
void configure(HttpSecurity http)

在配置(WebSecurity web)方法中,我忽略了某些 URL 的身份验证

public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers(HttpMethod.POST, "/examplePattern");
}

我在这个项目中有一些服务端点。现在我需要将某个IP(我将其作为字符串数组)列入白名单,它应该只能访问特定的端点。这是因为所有对端点的调用都要经过用户登录认证。

基本上我需要的是,如果从特定IP调用某个端点,请求应该到达 Controller ,无需身份验证

我对这个领域还很陌生,所以如果您有解决这个问题的方法,请告诉我。

提前致谢

最佳答案

您将需要基于 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 - 在 Spring 项目中将 IP 列入白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com