Spring Boot: Forwarda autentiserad user till metoden för form av RLS?

Permalänk
Medlem

Spring Boot: Forwarda autentiserad user till metoden för form av RLS?

Jag har en app där users autentiseras genom JWT. I dagsläget har alla users rättighet att skriva över vilken users data som helst, eftersom alla users har samma role. Jag kan inte låsa bort dem allihop genom att sätta PUT och DELETE bakom admin role, för man behöver kunna uppdatera sin egna data.

Jag vill implementera Row Level Security på min PostgreSQL databas. Men jag vet inte hur. En ful-lösning hade varit om jag på något sätt kunde få in vilken user som autentiserat sig mot end pointen till själva metoden och på så sätt bara jämfört autentiserad userID mot userID i den body man vill förändra i databasen. Om lika fortsätt och kör datan, annars 401.

Vet någon i vilken ände jag ska börja påta? Google har inte visat sig hjälpsamt i den här frågan.

Spring Boot 3
Spring Security 6
PostgreSQL

front end är en React Native App.

Permalänk
Medlem

Nu är det mycket länge sedan jag gjorde något med Spring *, och postgres har jag inte heller använt på länge, men;

Borde finnas ett Authentication-objekt injicerat, varifrån du borde kunna hämta ut vilken principal det gäller? Annars så tycker internet att följande kodsnutt skulle kunna ta fram det:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); Object principal = authentication.getPrincipal();

Visa signatur

The power of GNU compiles you!
"Often statistics are used as a drunken man uses lampposts -- for support rather than illumination."

Permalänk
Medlem
Skrivet av kode:

Nu är det mycket länge sedan jag gjorde något med Spring *, och postgres har jag inte heller använt på länge, men;

Borde finnas ett Authentication-objekt injicerat, varifrån du borde kunna hämta ut vilken principal det gäller? Annars så tycker internet att följande kodsnutt skulle kunna ta fram det:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); Object principal = authentication.getPrincipal();

Ska ta en titt. Tack