2015-08-18 17 views
16

Dinlenme uygulamasına spring-security eklemeye çalışıyorum. İlkbahar web sitesindeki öğreticiyi (https://spring.io/guides/tutorials/spring-security-and-angular-js/) takip ettim ama orada kullanmak istemediğim bir önyükleme bileşeni kullanıyor olabilir, belki sorun burada.Yay güvenliği: NoSuchBeanDefinitionException: [org.springframework.security.config.annotation.ObjectPostProcessor] türünde hiçbir nitelikli çekirdek bulunamadı

My güvenlik yapılandırması buradadır:

@Configuration 
@Order(2147483636) 
public class SecurityConfiguration extends WebSecurityConfigurerAdapter { 
@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.httpBasic().and().authorizeRequests() 
      .antMatchers("/rest", "/").permitAll().anyRequest() 
      .authenticated().and().csrf() 
      .csrfTokenRepository(csrfTokenRepository()).and() 
      .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class); 
} 

private Filter csrfHeaderFilter() { 
    return new OncePerRequestFilter() { 
     @Override 
     protected void doFilterInternal(HttpServletRequest request, 
             HttpServletResponse response, FilterChain filterChain) 
       throws ServletException, IOException { 
      CsrfToken csrf = (CsrfToken) request.getAttribute(CsrfToken.class 
        .getName()); 
      if (csrf != null) { 
       Cookie cookie = WebUtils.getCookie(request, "XSRF-TOKEN"); 
       String token = csrf.getToken(); 
       if (cookie == null || token != null 
         && !token.equals(cookie.getValue())) { 
        cookie = new Cookie("XSRF-TOKEN", token); 
        cookie.setPath("/"); 
        response.addCookie(cookie); 
       } 
      } 
      filterChain.doFilter(request, response); 
     } 
    }; 
} 

private CsrfTokenRepository csrfTokenRepository() { 
    HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository(); 
    repository.setHeaderName("X-XSRF-TOKEN"); 
    return repository; 
    } 
} 

Yığın izleme:

ERROR ContextLoader:353 - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setObjectPostProcessor(org.springframework.security.config.annotation.ObjectPostProcessor); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.config.annotation.ObjectPostProcessor] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:678) 
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 
at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:243) 
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:200) 
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:185) 
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1838) 
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2876) 
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1661) 
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:823) 
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) 
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) 
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) 
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216) 
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211) 
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:73) 
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24) 
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729) 
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258) 
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:48) 
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:587) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:339) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:846) 
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1275) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:442) 
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:176) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setObjectPostProcessor(org.springframework.security.config.annotation.ObjectPostProcessor); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.config.annotation.ObjectPostProcessor] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:659) 
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) 
... 54 more 

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.config.annotation.ObjectPostProcessor] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1072) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:967) 
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:616) 
... 56 more 

cevap

46

Sorun, SecurityConfiguration sınıfınızda @EnableWebSecurity ek açıklamanız olmamasıdır.

Bu, Spring-boot tarafından otomatik olarak eklenir, ancak Spring-boot 'u kullanmamayı tercih ettiğiniz için, bu işlemin manuel olarak yapılması gerekir.

2

senin <context:component-scan> Eğer paket kaplı olduğundan emin olun.

İlgili konular