오늘의하루

Spring boot 오류 페이지 본문

Spring

Spring boot 오류 페이지

오늘의하루_master 2023. 8. 30. 01:20

기본적으로 BasicErrorController는 기본적인 로직이 모두 개발되어 있다.

  • 개발자는 룰과 우선순위에 따라서 등록만 하면된다

저장 위치

  • 정적 HTML은 정적 리소스(resources/static/error/xx)
  • 동적으로 오류화면을 만들땐 뷰 템플릿(resources/templates/error/xx)

BasicErrorController의 처리 순서

  1. 뷰 템플릿에서 찾는다.
  2. 정적 리소스(static / public)
  3. 적용 대상이 없을때 뷰 이름 (error) - default

default 오류 뷰의 위치는 resources/templates/error.html이다.

 

그외 기본적으로 명확한 이름 우선적으로 찾는다.

예시) 500.html, 5xx.html, 404.html이 있다면 500과404를 먼저 찾고 그 후에 4xx,5xx를 찾는다.

참고) 4xx는 4로 시작하는 상태코드 모두를 처리한다.


BasicErrorController는 오류에 대한 정보를 model에 담아서 뷰에 전달하기 때문에 뷰 템블릿은 이 값을 출력할 수있다.

하지만 모든 오류 정보를 보여주는 것은 보안상 문제가 되기 때문에 BasicErrorController는 아래  오류 정보를 model에 포함 할지 여부를 선택할 수 있다.

 

application.properties에 작성

 

기본값(default)으로 작성한 것이다.

  1. server.error.include-exception=false : exception 포함여부 (true, false)
  2. server.error.include-message=never : message 포함 여부(always, never)
  3. server.error.include-stacktrace=never : trace 포함 여부(always, never)
  4. server.error.include-binding-errors=never : errors 포함 여부(always, never)

주의 : 이런건 고객한테 보여주지 않아야 한다. 내부에서만 확인해야한다.

 

Comments