Spring Boot

Geavanceerde authenticatie en autorisatie

Geavanceerde authenticatie, fijnmazige autorisatie met @PreAuthorize/@PostAuthorize, roles, permissions, SpEL

30 gespreksvragen·
Senior
1

Wat is de belangrijkste rol van de UserDetailsService-interface in Spring Security?

Antwoord

UserDetailsService is verantwoordelijk voor het laden van gebruikersinformatie uit de gegevensbron (database, LDAP, enz.) tijdens de authenticatie. De methode loadUserByUsername() retourneert een UserDetails-object met de username, password, roles en authorities. Spring Security gebruikt deze informatie vervolgens om de credentials te valideren en de SecurityContext op te bouwen.

2

Welke annotatie schakelt beveiliging op methodeniveau in Spring Security 6+ in?

Antwoord

@EnableMethodSecurity is de moderne annotatie in Spring Security 6+ die beveiliging op methodeniveau inschakelt. Het vervangt de oude @EnableGlobalMethodSecurity en schakelt standaard @PreAuthorize, @PostAuthorize en @Secured in. Het gebruikt een op AOP-proxy gebaseerde configuratie om methodeaanroepen te onderscheppen en autorisaties te controleren.

3

Op welk moment controleert de @PreAuthorize-annotatie de autorisaties?

Antwoord

@PreAuthorize controleert de autorisaties VÓÓR de uitvoering van de methode. Als de SpEL-voorwaarde false retourneert, wordt er een AccessDeniedException geworpen en wordt de methode nooit uitgevoerd. Dit voorkomt toegang tot ongeautoriseerde resources vanaf het begin. In tegenstelling daartoe controleert @PostAuthorize na de uitvoering, wat nuttig is om resultaten op basis van de gebruiker te filteren.

4

Wat is het belangrijkste verschil tussen hasRole() en hasAuthority() in Spring Security?

5

Hoe implementeer je een aangepaste UserDetailsService die gebruikers uit een database laadt?

+27 gespreksvragen

Beheers Spring Boot voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis