java, spring

[Spring] 스프링 시큐리티를 사용하는 커스텀 로그인 페이지

isaac.kim 2021. 9. 27.
728x90
반응형

[Spring] 스프링 시큐리티를 사용하는 커스텀 로그인 페이지

이전 글

2021.09.24 - [Spring] - [Spring] Spring Web Security

2021.09.24 - [Spring] - [Spring] Spring Web Security의 설정

2021.09.25 - [Spring] - [Spring] 스프링 시큐리티 간단한 로그인과 로그아웃 처리

 

커스텀 로그인 페이지

스프링 시큐리티에서 커스텀 로그인 페이지를 접근 제한 페이지와 유사하게 직접 특정한 URI를 지정할 수 있습니다.

 

security-context.xml의 일부

login-page 속성의 URI는 반드시 GET 방식으로 접근하는 URI를 지정합니다.

 

com.project.controller 패키지의 CommonController에 '/customLogin'에 해당하는 메서드를 추가합니다.

 

CommonController 클래스의 일부

loginInput( )은 GET 방식으로 접근하고, 에러 메시지와 로그아웃 메시지를 파라미터로 사용할 수 있습니다.

 

views 폴더에는 customLogin.jsp를 추가합니다.

접근 제한이 필요한 URI에 접근하면 작성된 customLogin.jsp 페이지의 내용을 볼 수 있습니다.

customLogin.jsp를 보면 몇 가지 특이한 점들이 있습니다. <form> 태그의 action 속성값이 '/login'으로 지정되어 있다는 점. 실제 로그인 처리 작업은 /login을 통해 이루어지는데 반드시 POST 방식으로 데이터를 전송해야 합니다. <input> 태그의 name 속성은 기본적으로는 username과 password 속성을 이용합니다.

마지막의 hidden 으로 처리된 input 태그는 특이하게 처리되고, 이 EL의 값은 실제 브라우저에서는 '_csrf'라는 이름으로 처리됩니다.

만일 사용자가 패스워드 등을 잘못 입력하는 경우에는 자동으로 다시 로그인 페이지로 이동하게 됩니다.

 

 

 

CSRF(Cross-site request forgery)에 관해서는 다음 글에서 보도록 하죠~!

 

728x90
반응형