코드 개선 사항(2026-10-10)


안녕하세요.

코드 개선에 따른 변경사항을 알려드립니다.
이용 시 참조하시기 바랍니다.

GitHub


변경 사항
1. Kakao 소셜 로그인 Provider를 작성하였습니다.
  • 카카오 디벨로퍼스에서 앱을 등록하고, Redirect URI 및 Logout URI등을 설정하신 후, 로그인을 하실 수 있습니다.
  • Google / Naver Provider를 적용할 때와 마찬가지로, OIDCConfig, OIDCProvider, ClientAuthConvertAdapter 구현 Class만 바꾸면 Kakao OIDC 인증이 동작합니다.
  • Kakao 소셜 로그인은 IDP 동시 로그아웃 기능을 제공합니다. OIDCLogoutFilter Bean에 설정된 manualLogoutUri를 이용하여 Kakao 서버와 동시 로그아웃 기능을 사용하실 수 있습니다.

2. Token 검증 로직을 개선하였습니다.
  • 지금까지 JWKS검증과, ID Token의 Audience만이 검증되고 있었습니다. 이것은 심각한 문제였습니다.
  • 필수적인 Claim에 모두 검증로직을 적용하여, 발급자 발급시각 만료시각 뿐만 아니라, 인가 집단(Authorize Party:azp)까지 검증하도록 개선하였습니다.
  • ID Token을 검증하는 검증 로직이 JWKS와 혼재되어 있었기에, 유지보수 및 가독성을 위해 분리하였습니다.

3. 예외를 세분화하도록 리팩토링을 진행했습니다.
  • OIDCException에 따로 Enumeration을 이용한 기존 방법은 예외처리 시 불편합니다.
  • 각 예외들에 대해 단계 / 원인이 필요한 예외는 각각의 예외 Class 내부에 Enumeration으로 포함시켰습니다.
  • 각 예외에 대해 각각 Class로 구현하고, 카테고리화 시켜서 예외 발생 Class만 봐도 내용을 명확하게 알수 있도록 개선하였습니다.
  • 이번 개선으로 인하여, @ControllerAdvice를 이용한 Global 예외처리의 구현이 이전 Template Code 보다는 수월해졌다고 생각됩니다.

필수적인 검증 로직이 누락되어 있었던 점을 개선한 점이 이번 개선 사항에서 가장 중요한 사안으로 생각됩니다.
앞으로도 이렇게 표준에 미달되거나 미흡한 부분을 지속적으로 개선해 나갈 예정입니다.

전자정부 프레임워크 실행환경 통합 예제 샘플 코드 또한 이번에 개선된 Template Code가 적용되었습니다.
Adapter Interface의 메서드가 약간의 변경사항이 있으므로, 구현 Class가 약간 수정되어야 합니다. 이 부분도 수정하여 Commit 되었습니다.
XML 설정 내역은 아무런 변동이 없습니다.

GitHub


추후 변경 예정 사항
  • Resource Server를 위한 Template Code를 구상중에 있습니다. 이는 별도의 Template Code로 작성될 듯 싶습니다


감사합니다.

업데이트: