首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebSecurityConfig:添加属性需要Bean吗?

WebSecurityConfig:添加属性需要Bean吗?
EN

Stack Overflow用户
提问于 2021-12-16 19:47:12
回答 1查看 48关注 0票数 0

由于某种原因,每当我试图向这个类添加属性时,应用程序就会中断。不知道我需要配置哪个卡车司机。

代码语言:javascript
运行
复制
    @Configuration
    @AllArgsConstructor
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
        private final AppUserService appUserService;
        private final BCryptPasswordEncoder bCryptPasswordEncoder;
    
        //without this line it works
        private String newProp;
    
        private FacebookConnectionSignup facebookConnectionSignup;
    
        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.authenticationProvider(daoAuthenticationProvider());
        }
    
        @Bean
        public DaoAuthenticationProvider daoAuthenticationProvider() {
            DaoAuthenticationProvider provider =
                    new DaoAuthenticationProvider();
            provider.setPasswordEncoder(bCryptPasswordEncoder);
            provider.setUserDetailsService(appUserService);
            return provider;
        }
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                    .csrf().disable()
                    .authorizeRequests()
                    .antMatchers("/api/v*/registration/**")
                    .permitAll()
                    .anyRequest()
                    .authenticated().and()
                    .formLogin();
        }
        @Bean
        public ProviderSignInController providerSignInController() {
            ConnectionFactoryLocator connectionFactoryLocator =
                    connectionFactoryLocator();
            UsersConnectionRepository usersConnectionRepository =
                    getUsersConnectionRepository(connectionFactoryLocator);
            ((InMemoryUsersConnectionRepository) usersConnectionRepository)
                    .setConnectionSignUp(facebookConnectionSignup);
            return new ProviderSignInController(connectionFactoryLocator,
                    usersConnectionRepository, new FacebookSignInAdapter());
        }
    
        private ConnectionFactoryLocator connectionFactoryLocator() {
            ConnectionFactoryRegistry registry = new ConnectionFactoryRegistry();
            registry.addConnectionFactory(new FacebookConnectionFactory("appId", "appSecret"));
            return registry;
        }
    
        private UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator
                                                                               connectionFactoryLocator) {
            return new InMemoryUsersConnectionRepository(connectionFactoryLocator);
        }
    }

启动ApplicationContext时出错。若要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2021-12-1700:40:17.874错误21160 --主o.s.b.d.LoggingFailureAnalysisReporter:

应用程序启动失败

描述:

com.example.demo.security.config.WebSecurityConfig中构造函数的参数2需要一个无法找到的'java.lang.String‘类型的bean。

操作:

考虑在您的配置中定义'java.lang.String‘类型的bean。

进程已完成,退出代码为%1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-16 19:51:40

不要使用AllArgsConstructor,而要使用RequiredArgsConstructor注释,并将此属性作为最终属性:

代码语言:javascript
运行
复制
private final FacebookConnectionSignup facebookConnectionSignup;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70384788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档