【问题标题】:Could not autowire. No beans of 'AuthenticationProvider' type found无法自动接线。找不到“AuthenticationProvider”类型的 bean
【发布时间】:2021-01-17 00:54:41
【问题描述】:

我无法在我的 SecurityConfig 类中自动装配 AuthenticationProvider Spring 框架实例。这很奇怪,因为我已经包含了必要的导入,并且 UserDetailsS​​ervice(另一个 Spring Framework 类)可以自动装配而没有任何问题。这是我的代码:

import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.security.authentication.AuthenticationProvider
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity
import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
import org.springframework.security.core.userdetails.UserDetailsService
import org.springframework.security.web.authentication.RememberMeServices
import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices

@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
class SecurityConfig : WebSecurityConfigurerAdapter() {
    companion object {
        private const val REMEMBER_ME_KEY = "basdrwerdadev$#@safasfewrahl"
    }

    @Autowired private lateinit var authenticationProvider: AuthenticationProvider
    @Autowired private lateinit var userDetailsService: UserDetailsService
    ...

也许我缺少依赖项?我添加了 Spring 安全依赖项

【问题讨论】:

    标签: java spring spring-boot kotlin spring-security


    【解决方案1】:

    我要检查的前两件事是:
    i) 您的自定义身份验证提供程序是否被注释为服务/组件(即 spring 可以查看和管理它吗?)
    ii) 是否扩展了 spring 的 AuthenticationManager 接口?

    【讨论】:

    • 我的身份验证提供程序不是自定义的。我用的是Spring提供的那个。
    • Spring 的 AuthenticationProvider 是 Spring 提供的接口,您可以使用自己的自定义逻辑来实现。我会尝试将 AuthenticationProvider 更改为 spring 提供的任何各种实现。如果可行,您可以选择最适合您项目的那个,甚至可以自己实现接口
    猜你喜欢
    • 2019-08-17
    • 2021-07-02
    • 2020-08-31
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多