gpt4 book ai didi

java - Spring security - 自定义 AuthenticationProvider 不工作 - Java 配置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:29 26 4
gpt4 key购买 nike

几天来我一直在努力解决标题中的问题,我非常沮丧。我不知道自己做错了什么,也不知道为什么我的实现不起作用。

让我告诉你我有什么:

自定义身份验证提供程序:

@Component
public class AuthProvider implements AuthenticationProvider {

private Logger logger = LoggerFactory.getLogger(AuthProvider.class);

public AuthProvider() {
logger.info("Building...");
}

public Authentication authenticate(Authentication authentication) throws AuthenticationException {
logger.info("Authenticate...");
return null;
}

public boolean supports(Class<?> authentication) {
logger.info("Supports...");
return true;
}
}

网络安全配置:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private AuthProvider authProvider;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider);
}

@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests().anyRequest().authenticated();
}
}

如您所见,我已将记录器添加到 AuthenticationProvider 中,但未调用其中任何一个。

我尝试过的:

  • @Autowired 添加到 configure,其中 AuthenticationManagerBuilder
  • @EnableGlobalMethodSecurity(prePostEnabled=true) 添加到类中
  • 将自定义 AuthenticationProvider 直接添加到 HttpSecurity

我是如何测试它的:

  • 通过 IntelliJ 调试 - 没有结果,没有调用断点。
  • 运行应用程序并发送请求 - 也没有结果,没有日志,什么都没有。

请大家以某种方式帮助我。我没力气了。我讨厌在应该有用的事情上浪费太多时间:(

最佳答案

可能您在 WebSecurityConfigurerAdapter 中错过了以下方法:

@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}

我也是这样。

关于java - Spring security - 自定义 AuthenticationProvider 不工作 - Java 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280354/

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