Definieren einer Bean für einen benutzerdefinierten Benutzer-Detail-Service

Wie kann ich meine Gewohnheit definieren?UserDetailsService Bean in einer Weise, die es meiner Spring MVC Web App ermöglicht, meine zugrunde liegende MySQL-Datenbank zu verwenden, um die Authentifizierung für Benutzer und Passwörter zu überprüfen?

Hier sind die Besonderheiten:

Ich füge der Sicherheit hinzuspring petclinic probe als weg um mehr über die frühlingssicherheit zu erfahren. Ich verwende die Java-Konfiguration und habe eineSecurityConfig.java Datei, die erweitertWebSecurityConfigurerAdapter. Ich versuche mich einzurichtenJdbcAuthentication auf eine Weise, die eine MySQL-Datenbank nutzt, die von derClinicService Werkzeuge, die in die petclinic Probe eingebaut sind. Ich habe daher eineCustomUserDetailsService Klasse, die sich erstrecktUserDetailsService, und das soll die verknüpfenSecurityConfig.java mitClinicService.java. Ich habe eineUser Klasse und einRole Klasse zum Modellieren derusers undroles Tabellen in der MySQL-Datenbank.

Ich habe dann die folgende Zeile hinzugefügtbusiness-config.xml definieren dieCustomUserDetailService:

<bean class="org.springframework.samples.petclinic.service.CustomUserDetailsService"></bean>

Aber dennoch erhalte ich die folgende Fehlermeldung, die besagt, dass die Bohne fürCustomUserDetailService wurde nicht definiert:

Caused by: java.lang.IllegalArgumentException: Can not set  
org.springframework.samples.petclinic.service.CustomUserDetailsService field  
org.springframework.security.samples.petclinic.config.SecurityConfig.myCustomUserDetailsService  
to $Proxy61

Um dieses Posting kurz zu halten, habe ich die relevanten Sicherungsmaterialien auf eine Filesharing-Site geladen. Sie können den gesamten Quellcode und den gesamten Stack-Trace lesen, indem Sie auf die folgenden Links klicken:

Du kannst lesenSecurityConfig.java indem Sie auf diesen Link klicken.
Der Code fürbusiness-config.xml istunter diesem link.
Der Code fürCustomUserDetailService.java istunter diesem link.
Der Code für dieUser Einheit istunter diesem link.
Der Code für dieRole Einheit istunter diesem link.
Der komplette Stack-Trace kann gelesen werdenunter diesem link.

Der gesamte andere Code für die Anwendung befindet sich auf der Github-Seite für das Beispiel der Spring-Tierklinik, das Sie lesen könnenindem Sie auf diesen Link klicken.

Hier isteinen Link zum Code für login.jsp.

Hier istein Link zu meinem überarbeiteten business-config.xml-Code.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage