- 로그인 실패시 핸들러
인증 실패시 처리하기 위해 Security Config에서 로그인 부분에 failureHandler를 작성한다.

그리고 빨간 줄에 커서를 올려 create class를 해준다. 이때 위치는 auth 안의 loginHandler로 해준다.


sysout으로 확인해본다.


추가로 sendRedirect를 해주고

UserController로 가서 login매핑에 exception을 넣어준다.

출력하면 exception을 확인 할 수 있다.

- 로그아웃 핸들러

auth에 logoutHandler를 만들어주고 그 안에 클래스를 create 해준다.



동작이 되는지 sysout으로 확인해본다.


동작을 확인했으면 세션을 초기화하는 작업을 해준다.

- 로그아웃 성공시 핸들러

똑같이 마우스를 올려 create class를 해준다. 위치는 auth의 logoutHandler 안에 해준다.


sysout으로 동작을 확인한다.


지금은 로그아웃하면 페이지가 없어 흰페이지가 뜨기때문에 로그아웃하면 로그인 페이지로 넘어가도록 해본다.

CustomLogoutSeccessHandler로 가서 메인페이지로 리다이렉트 해준다.

그리고 user.jsp로 가서 로그 아웃 버튼도 만들어 준다.

- 권한 실패시 예외처리

auth에 exception 패키지를 만들고 그 안에 CustomAccessDeniedHandler 클래스를 create 해준다.



Sysout으로 동작이 되는지 확인해본다.

user로 로그인하고 권한없는 member 페이지로 이동해본다. 그러면 예외가 발생하는 것을 확인 할 수 있다.


에러페이지 뷰를 출력하기 위해 CustomAccessDeniedHandler에서 작성한다.

user로 로그인하고 member권한이 있어야 갈 수 있는 member페이지로 이동해보면 error 페이지가 뜨는 것을 확인 할 수 있다.

- 미인증 사용자 처리
SecurityCofing로 가서 예외처리에 authenticationEntryPoint를 추가해준다.

auth의 exception에 CustomAuthenticationEntryPoint를 create 해준다.

Sysout으로 동작을 확인해본다.

로그인 하지 않고 user, member, admin 페이지로 가려하면 콘솔창에 에러 출력이 된다.

동작되는 것을 확인했으면 login페이지와 dispatcher 해준다.

login.jsp에 에러 메세지 출력을 위한 msg를 추가해준다.


이번에는 CustomAuthenticationFailureHandler로 가서 로그인 실패시 예외 메세지를 작성해준다.
(기존에 sendRedirect한 코드는 삭제해준다.)


'IT수업 > STS3' 카테고리의 다른 글
IT 수업 21주차 (145) Remember Me (0) | 2024.05.14 |
---|---|
IT 수업 21주차 (143) Security 4_ view로 표현하기 (0) | 2024.05.13 |
IT 수업 21주차 (142) Security 3_DB연결 (0) | 2024.05.13 |
IT 수업 21주차 (141) Security 2 (0) | 2024.05.13 |
IT 수업 21주차 (140) Security (0) | 2024.05.13 |