강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của eodilda
eodilda

câu hỏi đã được viết

mùa xuân an ninh

6) Tạo trang đăng nhập tùy chỉnh

/login_proc 경로는 내부적으로 자동 처리해주는 겁니까?

Viết

·

1.1K

0

 

컨롤러를 별도로 만들어줘서 처리해줘야 합니까?

spring-bootjavaSpring Security

Câu trả lời 4

0

정수원 선생님
loginProcessingUrl()에 /login_proc 설정하면 컨트롤러 매핑메소드로 선언하지 않았으니까
SpringSecurity 내부적으로 처리가 되고있는지를 질문하는거 같은데요?

내부적으로 어떤곳(필터)에서 로그인 처리가 되는지도 추가적으로 궁금한데 설명해주실 수 있나요?

타고 타고 들어가보니 OpenIDLoginFilter 에서 setOpenIDusernameParameter
setOpenIdEnabled
이것들을 통해 처리가되는거 같은데 맞나요?

0

leaven님의 프로필 이미지
leaven
Người chia sẻ kiến thức

제가 말씀 드린 login_proc 은 로그인 페이지로 이동하는 것을 의미하는 것이 아니라 로그인 페이지 내에서 실제 로그인 처리 실행 경로를 의미합니다.

스프링 시큐리티 기본 로그인 실행 경로는 /login 인데 formLogin.loginProcessingUrl("/login_proc") 으로 설정할 경우 실행경로가 설정된 값으로 변경되며 로그인 페이지에서도 form action 에 /login_proc 라고 정의해 주어야 된다는 의미입니다.

컨트롤러에서 /login_proc Post 방식으로 된 메서드를 추가한다는 것이 아예 스프링 시큐리티의 인증 필터를 거치지 않고 자체적으로 인증 기능을 구현한다는 의미인지는 잘 모르겠지만 컨트롤러에서 /login_proc 요청을 받기 위해서는 formLogin.loginPage("/login_proc") 으로 할 수 있습니다.

즉 커스텀 페이지를 생성할 경우 경로 설정하는 것이 formLogin.loginPage("/login_proc") 이고
생성된 페이지에서 로그인 처리 할 경우 경로 설정하는 것이 formLogin.loginProcessingUrl("/login_proc") 입니다. 이 때 페이지의 form action=/login_proc 도 동일한 경로로 작성해야 합니다.

 

 

0

저도 윗분과 같이 동일하게 궁금한게 있어서 추가로 질문드립니다.

컨트롤러에서 /login_proc Post 방식으로 된 메서드를 추가해야 정상적으로 처리되는게 아닌가 싶습니다.

현재, 직접 로그인 페이지를 구현해서 로그인을 시도하는 경우에 아래와 같이 /login_proc에 매핑된 컨트롤러가 없어서 에러가 발생합니다.

image

0

leaven님의 프로필 이미지
leaven
Người chia sẻ kiến thức

강의를 보시면 아시겠지만 스프링 시큐리티 자체적으로 생성되는 로그인 페이지에서는 자동적으로 처리해 주고 있지만 직접 로그인 페이지를 생성해서 사용하신다면 로그인 페이지의 form action=login_proc 과 같이 설정해 주어야 합니다.

즉 시큐리티 설정에서 formLogin.loginProcessingUrl("/login_proc") 하고 로그인 페이지에서 form action="login_proc" 을 해 주시면 됩니다.

컨트롤러는 직접 생성한 로그인 페이지로 이동하도록 만들어야 합니다.

Hình ảnh hồ sơ của eodilda
eodilda

câu hỏi đã được viết

Đặt câu hỏi