DB

[OpenAI] Springboot/ 401 Unauthorized: [no body] 오류

웹개발자(진) 2024. 6. 13. 22:44
반응형

 

 

 

잡담

프로젝트 준비하면서 ChatGpt OpenAI를 활용하고 있습니다. 잘 사용하다가 뭔가를 잘못 건드렸는지 해당 오류가 발생하더라고요.. 도대체 뭐를 잘못했는지 한참을 찾았는데 코드를 아무리 봐도 잘못된 게 없었습니다. 이리저리 검색하다 발견했습니다. 결국 잘못한 건 나였고...

 


 

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: 
org.springframework.web.client.HttpClientErrorException$Unauthorized: 

401 Unauthorized: [no body]] with root cause

 

401 Unauthorized: [no body] 오류

해당 오류 메시지는 401 Unauthorized 오류로, 이는 인증되지 않은 요청이 API 서버에 의해 거부되었음을 나타냅니다. 이 문제는 보통 API 호출 시 필요한 인증 정보가 누락되었거나 잘못된 경우에 발생합니다.

 

1. API 키 확인:

  • API 키가 올바르게 설정되었는지 확인합니다. API 키가 누락되었거나 잘못되었을 수 있습니다.

 

2. 인증 헤더 추가:

  • 요청에 인증 헤더를 추가해야 합니다. RestTemplate을 사용할 때, HttpHeaders 객체에 API 키를 포함하는 방법을 확인합니다.

 

사실 이 두 가지를 전부 해봤지만 달라지는 게 없었습니다. 그러다 찾은 방법!


 

3. API-KEY 재발급

아래의 링크를 통해 OpenAI의 키 발급하는 곳으로 이동해서 재발급받으시고 사용하시면 해결되었습니다.

https://platform.openai.com/api-keys


 

지금 와서 생각해 보니까 보통 API-KEY는 환경변수에 담아서 gitignore에 올려서 Github에는 Push 안되도록 해야 되는데 그걸 깜빡하고 그대로 코드를 올린 거 같습니다.


 

메일이 도착해 있었습니다


 

해당 내용을 Github에서 판단해서 Push 하는 것을 막아줬는데 그걸 또 어떻게 알고 OpenAI에서 해당 API-KEY를 차단한 거 같더라고요.

Github에서 막은 걸 어떻게 OpenAI가 알고 있는 거지...

ChatGpt가 딥러닝할 때 Github정보들을 다 흡수했다는 가설이 있던데 사실일지도 모르겠다는 생각이 드네요.

 


 

글을 마치며

API-KEY 같은 경우는 요금을 지불하는 경우가 있기 때문에 진짜 잘 관리하셔야 됩니다. 저도 초보라 이렇게 실수했지만 현업에서 그랬다고 생각하면 아찔하네요.. 꼭 환경변수에 담아서 사용하시길 바랍니다!

반응형