Spring Boot

고급 인증 및 인가

고급 인증, @PreAuthorize/@PostAuthorize, roles, permissions, SpEL을 이용한 세밀한 인가

30 면접 질문·
Senior
1

Spring Security에서 UserDetailsService 인터페이스의 주요 역할은 무엇입니까?

답변

UserDetailsService는 인증 시 데이터 소스(데이터베이스, LDAP 등)에서 사용자 정보를 로드하는 역할을 합니다. 해당 loadUserByUsername() 메서드는 username, password, roles, authorities를 포함하는 UserDetails 객체를 반환합니다. 그런 다음 Spring Security는 이 정보를 사용하여 자격 증명을 검증하고 SecurityContext를 구성합니다.

2

Spring Security 6+에서 메서드 수준 보안을 활성화하는 어노테이션은 무엇입니까?

답변

@EnableMethodSecurity는 Spring Security 6+에서 메서드 수준 보안을 활성화하는 최신 어노테이션입니다. 기존의 @EnableGlobalMethodSecurity를 대체하며 기본적으로 @PreAuthorize, @PostAuthorize, @Secured를 활성화합니다. AOP 프록시 기반 구성을 사용하여 메서드 호출을 가로채고 인가를 확인합니다.

3

@PreAuthorize 어노테이션은 언제 인가를 확인합니까?

답변

@PreAuthorize는 메서드 실행 전에 인가를 확인합니다. SpEL 조건이 false를 반환하면 AccessDeniedException이 발생하고 메서드는 절대 실행되지 않습니다. 이를 통해 처음부터 허가되지 않은 리소스에 대한 접근을 막을 수 있습니다. 반대로 @PostAuthorize는 실행 후에 확인하므로 사용자에 따라 결과를 필터링하는 데 유용합니다.

4

Spring Security에서 hasRole()과 hasAuthority()의 주요 차이점은 무엇입니까?

5

데이터베이스에서 사용자를 로드하는 커스텀 UserDetailsService를 어떻게 구현합니까?

+27 면접 질문

다음 면접을 위해 Spring Boot을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기