인프런 커뮤니티 질문&답변

원데이님의 프로필 이미지
원데이

작성한 질문수

스프링 시큐리티

루트에서 로그인 성공후 에러 메시지가 보입니다.

작성

·

1.1K

0

7) 로그아웃 및 인증에 따른 화면 보안 처리 강의 입니다.

 

http://localhost:8080

URL 이 위와 같은 상태에서 로그인 페이지로 이동해서 로그인을 하면 아래와 같은 메시지가 나타납니다.

http://localhost:8080/mypage 경로 상태에서 로그인 페이지로 이동해서 로그인하면 정상적으로 오류 메시지 없이 잘 되는데 서브 경로가 없는 상태에서 로그인을 하니까 문제가 있어요

세션에는 등록이 되고 로그인처리는 되었는데 마지막화면에서 오류메시지만 떠요.

답변 부탁드릴게요

 

로그인 이후 URL : http://localhost:8080/error

{"timestamp":"2023-03-10T01:58:06.693+00:00","status":999,"error":"None","message":"No message available"}

 

답변 1

1

정수원님의 프로필 이미지
정수원
지식공유자

최초 웹어플리케이션 구동 후 로그인 성공시 999 에러가 발견되는 부분은 다음과 같은 상황으로 이해하면 될 것 같습니다

  1. 로그인이 안된 상황에서 어떤 정적파일 혹은 시큐리티에서 필터링 되지 못한 일부 자원이 요청에 포함되어 접근할려고 할 때 해당 파일에 대한 인가 예외가 발생해서 /error 가 발생함

  2. 다시 로그인 페이지로 이동한 다음 정상적으로 로그인이 성공하긴 했는데 로그인이 성공하게 되면 로그인 이전의 경로가 캐시로 저장된 상태 즉 /error 경로로 다시 리다이렉트하기 때문에 로그인이 성공하더라도 /error 로 가게 됨

  3. 여기서 /error 자체도 접근 권한을 체크하기 때문에 아예 시큐리티가 필터링하지 못하도록 정적 파일에 포함해서 선언함


다만 위의 설명이 모든 상황에서의 경우는 아닐 수 있습니다.

그래서 다음과 같이 정적파일을 선언해 주시면 될 것 같습니다.

@Bean
    public WebSecurityCustomizer webSecurityCustomizer() {
        return (web) -> web.ignoring()
.requestMatchers(PathRequest.toStaticResources().atCommonLocations())
.antMatchers("/favicon.ico", "/resources/**", "/error");
    }
원데이님의 프로필 이미지
원데이

작성한 질문수

질문하기