Spring Security 3: Passwort-Problem behoben

8

Ich habe eine einfache Anwendung, in der ich Benutzer registrieren und authentifizieren kann. Ich habe die Passwörter verschlüsselt und erfolgreich in der Lage, sie zu authentifizieren. Ich verwende Spring 3, Spring Security 3 und Hibernate 3 in meiner Anwendung.

Jetzt möchte ich ihre Passwörter mit der ID des Benutzers abgleichen, aber ich kann diese Funktionalität nicht erreichen. Könnte mir jemand helfen, es zu erreichen? Ich habe es schon eine ganze Weile versucht, aber ich kann es nicht schaffen.

Hier ist der Code, den ich habe, um Benutzer mit ihrer ID zu salzen und zu authentifizieren.

xyz-security.xml

%Vor%

UserDetailsAdapter.java

%Vor%

UserDetailsServiceImpl

%Vor%

UserServiceImpl

%Vor%

Könnte mir jemand helfen zu verstehen, was ich hier vermisse? Vielen Dank.

    
skip 11.02.2011, 11:55
quelle

2 Antworten

7

ReflectionSaltSource extrahiert ein Salz aus der Instanz von UserDetails . Aber Sie verwenden org.springframework.security.core.userdetails.User als eine Implementierung von UserDetails , und es hat keine Eigenschaft namens id (stattdessen haben Sie diese Eigenschaft in UserDetailsAdapter , was keinen Sinn ergibt, da UserDetailsAdapter ist ein Singleton).

Sie müssen also eine Unterklasse von org.springframework.security.core.userdetails.User mit id -Eigenschaft erstellen und sie von Ihrem UserDetailsAdapter zurückgeben.

    
axtavt 11.02.2011, 13:11
quelle
7

Hier sind die aktualisierten Dateien, die es funktionierten:

UserDetailsAdapter.java

%Vor%

UserDetailsServiceImpl.java

%Vor%

UserServiceImpl.java

%Vor%

Danke:)

    
skip 25.02.2011 19:55
quelle

Tags und Links