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.