Spring Data REST-Filterungsdaten basierend auf dem Benutzer

8

Wenn ich eine Repository-Einrichtung wie die folgende habe, die Spring Data REST nutzt, kann ich auf die Daten unter / receipts zugreifen und alle Daten sehen. Ich möchte jedoch nur Daten für den Benutzer zurückgeben. Ich habe einen benutzerdefinierten Finder "findByStorer", der dies tun würde. Wie würde ich Spring Data REST dazu bringen, dies zu verwenden und den storer-Wert vom Benutzer zu erhalten, anstatt einen Abfrageparameter anzugeben?

%Vor%

Ich habe noch keine Sicherheit implementiert, daher ist diese Frage im Moment eher Theorie als Übung.

Danke.

    
Patrick Grimard 13.05.2014, 19:59
quelle

4 Antworten

3

Aufbauend auf @ rprs Antwort:

Sie sollten in der Lage sein, Eigenschaften der verbundenen Entität (Storer) zu referenzieren. In Ihrem Beispiel, wenn Sie Empfang haben - & gt; Speicher - & gt; Benutzer können die Quittungen abfragen, bei denen Storer.user einen Wert aus dem Sicherheitskontext hat.

%Vor%     
Ben 15.06.2015 16:32
quelle
2

Wenn Sie Spring Security verwenden, können Sie diesen Ansatz verwenden:

%Vor%     
rpr 17.07.2014 21:45
quelle
1

Wenn Sie beispielsweise Repository für SomeEntity angeben, können Sie findAll method mit einem benutzerdefinierten @Query filter nach Attribut owner mit dem Wert von '# {principal.username}

überschreiben %Vor%     
Daniel Cerecedo 17.06.2016 14:32
quelle
0

Dieses Problem ist eine typische Querschnittsthema, also habe ich versucht, AOP anzuwenden. Definieren Sie Ratschläge und aktualisieren Sie die Argumente (String storer), wie unter Ссылка

erläutert %Vor%     
pdorgambide 21.09.2017 22:12
quelle

Tags und Links