3 Stimmen

Fehler beim Erstellen der Bean mit dem Namen "securityConfig": Die Injektion der autowired-Abhängigkeiten ist fehlgeschlagen.

Ich versuche, Java-Konfiguration und XML-Konfiguration für die Authentifizierung von Spring Security zu kombinieren. Aber ich habe einen Fehler erhalten:

Fehler beim Erstellen des Beans mit dem Namen 'securityConfig': Injection von autowired-Abhängigkeiten fehlgeschlagen

Was scheint das Problem mit meinem Code zu sein? Ich habe nach Antworten gesucht, aber keine gefunden.

Vielen Dank im Voraus. Hoffe, Sie können mir helfen.

Stack-Trace:

org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen des Beans mit dem Namen 'securityConfig': Injection von autowired-Abhängigkeiten fehlgeschlagen; verschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Methode konnte nicht verkabelt werden: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setAuthenticationConfiguration(org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration); verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine Übereinstimmung für den Typ [org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration] für Abhängigkeit gefunden: mindestens 1 Bean erwartet, der als Verkabelungskandidat für diese Abhängigkeit qualifiziert. Abhängigkeitsannotationen: {}
Verursacht durch: org.springframework.beans.factory.BeanCreationException: Methode konnte nicht verkabelt werden: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setAuthenticationConfiguration(org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration); verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine Übereinstimmung für den Typ [org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration] für Abhängigkeit gefunden: mindestens 1 Bean erwartet, der als Verkabelungskandidat für diese Abhängigkeit qualifiziert. Abhängigkeitsannotationen: {}
Verursacht durch: org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine Übereinstimmung für den Typ [org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration] für Abhängigkeit gefunden: mindestens 1 Bean erwartet, der als Verkabelungskandidat für diese Abhängigkeit qualifiziert. Abhängigkeitsannotationen: {}

Java-Konfiguration: SecurityConfig.java

@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
     http
     .authorizeRequests()
         .antMatchers("/webapp/resources/**").permitAll() 
         .anyRequest().authenticated()
         .and()
     .formLogin()
         .loginPage("/login")
         .permitAll()
         .and()
     .logout()                                    
         .permitAll();
}

@Autowired
public void registerGlobalAuthentication(
        AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
            .withUser("user").password("password").roles("USER");
}
}

web.xml

    contextConfigLocation
    /WEB-INF/spring/root-context.xml

    org.springframework.web.context.ContextLoaderListener

    appServlet
    org.springframework.web.servlet.DispatcherServlet

        contextConfigLocation
        /WEB-INF/spring/appServlet/servlet-context.xml

    1

    appServlet
    /

Ich habe bereits das Komponenten-Scanning in meiner servlet-context.xml deklariert

3voto

Yannick Block Punkte 51

Sie könnten versuchen, eine @Component-Annotation hinzuzufügen. Auf diese Weise sollte die automatische Verdrahtung funktionieren.

0voto

Anil Satija Punkte 365

Sie müssen zur Spring-Konfigurationsdatei hinzufügen. Andernfalls wird Ihre Anwendung nicht Ihre Paketstruktur scannen, um Beans im Anwendungskontext zu finden und zu registrieren.

Syntax: Beispiel:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X