문제 정의 (원인)

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'webSecurityConfig' defined in file 
[C:\\Users\\derse\\OneDrive\\Desktop\\Spring\\project\\Jamrello\\build\\classes\\java\\main\\com\\sparta\\jamrello\\global\\config\\WebSecurityConfig.class]: 
Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'jwtUtil': Invocation of init method failed

조치 방안 검토 (분석)

  1. jwtUtil@Configuration 에노태이션이 철자오류없이 제대로 기입되있는지 확인한 결과 이상이 없었습니다.
  2. PropertiesjwtUtil의 연결이 제대로 이뤄져있는지 확인결과 이상없이 값을 잘 불러오는것을 확인이 되었습니다.
  3. jwtUtil의 코드를 전부 면밀히 확인해본결과 @PostConstruct에노테이션이 사용된 key init메소드에서 문제가 발생함을 확인하였습니다.

조치 방안 구현 (해결 + 느낀점)

해당 문제를 확인결과 사용된 jwtSecretKeY의 경우 Base64로 인코딩하여 사용되는데 인코딩한 문자열을 입력할때 "/"철자가 오기입되면서 해당 문자를 디코딩할수없어 오류가 발생하였다는 문제를 발견했습니다. 또한 문제해결과정에서 같은 시크릿키를 사용한 실제 Application환경에서는 오류가 없었는데 Application환경과 테스트환경 둘다 환경변수를 사용함으로서 해당 시크릿키를 입력하여 보안을 유지하고있었는데 테스트환경으로 환경변수를 일일히 복사붙여넣기하는 과정에서 "/"문자가 같이 기입된것으로 확인되었습니다.

해당 문제를 막기위해 환경변수 템플릿을 활용하여 환경변수 오기입문제를 미연에 방지해야겠다는 생각이 들었습니다.