FrameWork/Spring

security:logout 처리에서 로그아웃 페이지 유동적으로 바꾸기

꼽등이 2018. 3. 5. 19:16

전자정부 프레임워크 때문에 스프링을 만지다가 security라는 것을 알게되었는데,


Spring에서 Login과 Logout에 대해 안전하게 처리해주는 기능인 것 같다.


기능상세는 나중에 다뤄보도록 하고, 내가 문제가 있었던  부분은 


이 부분 이었다. 로그아웃이 성공하면 돌려주는 부분이 저렇게 되어있었고,



이런식으로 Controller에 등록할 필요도없이 간단하게 저렇게만 적어주면 알아서 다 처리해버린다.


구글링을 해보다가 핸들러에 등록하면 별도처리가 가능하다는 걸 알았다.



그래서 LogoutSuccessHandler를 Bean에 등록해서 했는데 자꾸


java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext


이러한 에러가 출현... 로그를 잘 살펴보지않고 이것저것 삽질하다가 맨위에


org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Use logout-success-url or success-handler-ref, but not both


이런 에러가 뜨는 것을 발견함.....


그렇다. logout-success-url과 success-handler-ref는 같이 쓸 수 없으며, success-handler-ref에서 지정해 줄 수 있어서 필요가 없다.


로그를 잘보자...