Closed kimhanui closed 4 years ago
expiredUrl
이 아닌 invalidSessionUrl
이 호출됨http.sessionManagement()
.invalidSessionUrl("/loginView")
.expiredUrl("/memberExpired")
현재 : 다른 지역에서 로그인, 세션만료 시 /loginView 호출
세션 만료 후 expiredUrl이나 invalidSessionUrl이 없어도 알아서 loginView가 나타남.
세션만료는 어떤 요청이 있을 때 반영돼서 나타날건데,
home처럼 모두가 접근 가능한 요청이면 그냥 로그아웃된채로 뷰가 나타날 것임.
그래서 invalidSessionUrl 필요없음.
중복 로그인은 expiredUrl
만 있으면 됨.
invalidSessionUrl은 없어도 됨. 정확힌 둘이 같이 쓰면 안되고 expiredUrl만 필요.
둘다 쓰면 invalid만 수행.
.invalidSessionUrl("/loginView")
쓰면 a 로그인 후 b로그인한다 가정했을 때
a에서 세션이 해제되고 invalid,,,,메소드가 수행된다. -> 로그인 뷰 호출됨.
.expiredUrl("/memberExpired")
쓰면 a에서 세션 해제되고 expired.jsp 호출됨.그럼 invalid,,, 에 /memberExpired쓰면 되지 않냐? 할 수 있지만
세션이 해제되는 모든 상황에서 당신, expired되었다
라는 뷰를 띄울 순 없음.
세션유지기간 set
+ antMatchers에 권한별 접근제어
만 하면 된다.
증상
member/expired.jsp
로 이동해야됨시도자체
를 막아버림( 로그인 시도하면 다시 로그인 view)시나리오
loginFailureHandler
원인: maxSessionsPreventsLogin(true)
screenshot
response
server log
1
실행 환경