当前位置: 首页 > 知识库问答 >
问题:

创建名称为“身份验证管理器Bean”的bean时出错

阚吕恭
2023-03-14

创建名为“authenticationManagerBean”的bean时出错:请求的bean当前正在创建中:是否存在无法解析的循环引用?

我做了什么坏事?

@EnableResourceServer
@Configuration
public class ResourceServerConfig extends WebSecurityConfigurerAdapter {

    private final AuthenticationManager authenticationManager;

    @Autowired
    public ResourceServerConfig(AuthenticationManager authenticationManager) {
        this.authenticationManager = authenticationManager;
    }

    @Override
    @Bean
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatchers()
                .antMatchers( "/login","/oauth/authorize")
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .formLogin()
                .permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.parentAuthenticationManager(authenticationManager)
                .inMemoryAuthentication()
                .withUser("Admin")
                .password("admin")
                .roles("ADMIN");
    }
}

共有1个答案

顾嘉德
2023-03-14

如果您没有家长AuthenticationManager,应该是:

@EnableResourceServer
@Configuration
public class ResourceServerConfig extends WebSecurityConfigurerAdapter {

    @Override
    @Bean
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatchers()
                .antMatchers( "/login","/oauth/authorize")
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .formLogin()
                .permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("Admin")
                .password("admin")
                .roles("ADMIN");
    }
}

如果你这样做了,那么你要么重新命名父对象,要么给这个子对象命名为Bean其他名称:

@EnableResourceServer
@Configuration
public class ResourceServerConfig extends WebSecurityConfigurerAdapter {

    // Option 1) rename the parent somewhere else, like so....
    private final AuthenticationManager parentAuthenticationManager;

    @Autowired
    public ResourceServerConfig(AuthenticationManager parentAuthenticationManager) {
        this.parentAuthenticationManager = parentAuthenticationManager;
    }

    @Override
    // Option 2) rename the child AuthenticationManager here
    @Bean("childAuthenticationManager")
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatchers()
                .antMatchers( "/login","/oauth/authorize")
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .formLogin()
                .permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.parentAuthenticationManager(authenticationManager)
                .inMemoryAuthentication()
                .withUser("Admin")
                .password("admin")
                .roles("ADMIN");
    }
}
 类似资料:
  • 我刚开始使用hibernate,不太确定我的应用程序出了什么问题。所以我有两个模块:核心模块和网站模块。 模块核心拥有所有的实体,daos和所有的数据库工作。所有的DAO继承一个AbstractDAO。 模块网站做所有前端的东西,如jsps,mvc控制器...它是一个支持Spring框架的maven模块。 我试图实现第二级缓存使用ehache工厂。 组织。springframework。豆。工厂B

  • 问题内容: 我将所有的XML Spring配置都转换为Java代码配置,但是由于我有一个丑陋的异常,所以我无法运行我的所有测试(它们之前都曾进行过测试): 这是我的测试课: 和我的: 我在测试课上尝试了推子,但这没用。该项目是Spring MVC项目,但是现在我仅测试服务层,所以为什么要在我的课程上放置该注释?即使有了该注释,也会出现另一个错误。那么,这里发生了什么? 问题答案: 您的配置很好,除

  • 问题内容: 我正在使用Springframework和Tomcat创建一个简单的REST服务。响应应该像{“ id”:“ 101”,“ name”:“ Ram”}之类的json中。每次运行时,出现以下错误 从这里开始,以下是我的Java代码和xml文件。 POM.xml web.xml front-controller-servlet.xml json / User.java json / Use

  • 当我尝试启动应用程序时,我得到以下消息: “不满意的依赖关系”异常:创建名称为“产品服务”的 Bean 时出错 [C:\Users\Acasa\0 SDA\0 Proiecte 实践\attentive2细节\目标\类\com\示例\attentive2细节\服务\产品服务.class]:通过构造函数参数 0 表示的不满意的依赖关系;嵌套的异常是组织.springframework.bean.fa

  • 当我试图运行我的项目时,我遇到了以下错误: 这是我的豆子: 我查看了我所有的文件,我自己似乎找不到错误,就像我在标题中所说的,我是初学者,我需要一些帮助。 预期的结果是让它运行,让我能够通过邮递员与它互动

  • 问题内容: 任何建议将不胜感激。我难过… 问题 在我的笔记本电脑上,只要我们的应用程序尝试加载application- config.xml,我都会收到java.lang.reflect.MalformedParameterizedTypeException。 完全相同的代码可在我的台式机和同事的台式机/笔记本电脑上使用。但是在我的笔记本电脑上,它将引发此错误。由于我的笔记本电脑和台式机是完全相同