Utiliser Spring Security avec JPA
Je suis nouveau au Printemps.
Nous sommes à l'aide de printemps fonction de sécurité.
Connectivité de base de données: eclipselink mise en œuvre de la JPA.
Base De Données: MySql
Lors de l'utilisation de ressort de sécurité, la Configuration de fournisseur d'authentification est comme suit,-
<authentication-provider>
<jdbc-user-service id="userDetailsService" data-source-ref="Datasource" />
</authentication-provider>
Mais en JPA nous n'avons pas de définition de source de données, nous utilisons l'unité de Persistance avec le fournisseur de jpa.PersistenceProvider.
Alors, comment configurer le fournisseur d'authentification de manière à utiliser JPA pour la connectivité de base de données?
Exactement ce que dois-data-source-champ ref contiennent de l'utilisation de la base de données pour l'authentification?
Vous en remercie d'avance.
source d'informationauteur Sagar | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous avez probablement besoin de mettre en œuvre des
UserDetailsService
vous-même.De sorte que vous aurait par exemple un
User
entité, et votreUserDetailsService
mise en œuvre serait de rechercher l'utilisateur et de le convertir à uneUserDetails
objet (ou votre entité pour la mise en œuvreUserDetails
).Exemple de mise en œuvre:
Et vous ajoutez cet utilisateur
spring-security.xml
Un moyen plus facile pour l'authentification dans votre cas est d'obtenir un de votre couche de service classes implémentent
org.springframework.security.core.userdetails.UserDetailsService
interface. Cette interface contient une seule méthodeUserDetails loadUserByUsername(String username)
. Vous devez vous assurer que vous revenez à unUserDetails
exemple, pour un nom d'utilisateur donné.Une fois que vous avez mis en œuvre cette méthode dans votre classe de service, vous aurez simplement besoin d'ajouter la référence de votre ressort fichier de configuration: