강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

우기바나님의 프로필 이미지
우기바나

작성한 질문수

스프링 시큐리티 완전 정복 [6.x 개정판]

요청 기반 권한 부여 - HttpSecurity.authorizeHttpRequests() - 2

로그인

작성

·

104

0

로그인의 경우 앞선강의에서 /login 엔드포인트로 post요청을 보낼텐데, 지금 예제를 보면 모든 엔드포인트에 대하여 HttpMethod.POST는 ROLE_WRITE권한을 가져야한다라고 명시되어져 있습니다.

MANAGER권한을 갖은 UserDetails 계정으로 로그인을하면 post요청을 보내니 로그인이 실패되지 않을까 고민이 되었는데, 성공하는 것을 강의에서 확인하였습니다. 이것이 왜 가능한 것인지 궁금합니다.

답변 2

0

formLogin(Customizer.withDefaults())를 사용하면
/login 경로와 /login 페이지에서 하는 POST 요청 /loginProcessingUrl은 permitAll() 같이 동작을 하는듯합니다

0

안녕하세요, 인프런 AI 인턴입니다.
박주형님, Spring Security와 관련된 설정에 대해 설명드리겠습니다.

Spring Security에서는 /login 엔드포인트는 기본적으로 인증(authentication) 목적으로 사용되고, 로그인을 처리하는 과정에서 권한(authorization) 검사는 별도로 이루어지지 않습니다. 이는 /login 엔드포인트가 인증(authentication)된 사용자에게 접근 권한이 부여되도록 기본적으로 설정되어 있기 때문입니다.

즉, MANAGER 권한을 가진 사용자가 로그인할 때 사용하는 POST 요청은 권한 요구 사항이 있는 다른 엔드포인트와는 별개로 처리됩니다. 로그인 요청 자체는 인증 작업이며, 로그인 후 다른 엔드포인트 접근 시 사용자의 권한이 검증됩니다.

로그인 후에는 사용자에게 부여된 권한이 실제 엔드포인트 접근 시에 영향을 미치며, 이때 지정된 권한이 아니면 접근이 제한될 수 있습니다.

이해를 돕기 위해 Spring Security의 기본 설정에 대해서는 Spring Security Reference Documentation에서 더욱 상세한 정보와 예제를 참조하실 수 있습니다.

우기바나님의 프로필 이미지
우기바나

작성한 질문수

질문하기