繁体   English   中英

Spring 安全性 - 自定义 AuthenticationProvider 不起作用 - Java Config

[英]Spring security - Custom AuthenticationProvider not working - Java Config

我已经为标题中的问题苦苦挣扎了几天,我感到非常沮丧。 我不知道我做错了什么以及为什么我的实现不起作用。

让我告诉你我有什么:

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

@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 中,但并未调用任何记录器。

我试过的:

  • 添加@Autowiredconfigure AuthenticationManagerBuilder位置
  • @EnableGlobalMethodSecurity(prePostEnabled=true)到类中
  • 将自定义AuthenticationProvider直接添加到HttpSecurity

我如何测试它:

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

请伙计们以某种方式帮助我。 我没电了我讨厌在应该有效的事情上浪费太多时间:(

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

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

我也遇到了同样的情况。

使用isAssignableFrom()方法而不是==equals我们得到一个 true,然后流将通过authenticate()

override fun supports(authentication: Class<*>): Boolean {
    return UsernamePasswordAuthenticationToken::class.java.isAssignableFrom(authentication)
}

GL

来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM