인프런 커뮤니티 질문&답변
로그인
작성
·
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에서 더욱 상세한 정보와 예제를 참조하실 수 있습니다.





