API 사용을 위해 Token을 그때그때 발급해야 해서
인코딩을 위해 java.util.Base64를 사용하였다.
local에서는 JDK 1.8을 사용해서 전혀 문제가 없었는데
문제가 생겼다... 실제 올려야하는 시스템은 JDK 1.7이었던 것!
이 부분을 먼저 염두에 두고 작업을 했어야 했는데
학원에서는 딱 정해진 것만 사용해서 버전 이슈가 없었기에
이번 기회에 확실하게 배우게 되었다....ㅠㅠ
공식 문서에도 Since : 1.8이라고 떡하니 적혀있다...ㅠㅠ
그렇다면 방법이 전혀 없는 것일까?
아니 그럴리는 없지 나믿구믿! 구글 검색을 해봤다
그리고 정말로 딱 필요했던 글을 찾아 수정할 수 있었다
org.apache.commons.codec.binary.Base64를 사용하는 것
(맨 아래 링크를 참고해주세요)
그리고 바로 수정을 했다. 예시를 들자면 아래와 같다.
(실제 사용한 코드는 아니고 예시로 만듦)
import java.util.Base64;
→ import org.apache.commons.codec.binary.Base64;
String strKey = "API에서 넘어온 키";
byte[] byteKey = strKey.getBytes("UTF-8");
Base64.Encoder encoder = Base64.getEncoder();
→ 삭제
byte[] encodedKey = encoder.encode(byteKey);
→ byte[] encodedKey = Base64.encodeBase64(byteKey);
String authKey= new String(encodedKey);
많이 수정한 것도 아닌데 실행이 잘 되서 해삐!
더 자세한 내용은 아래 링크를 참고해주시길~
[TIL] Java7 에서는 java.util.Base64 가 동작하지 않는다
테스트 서버는 java 1.8 인데 운영서버는 java 1.7 인 환경에서 운영서버에 올렸더니 먹통이 되는 Base64 encode/decode...검색해보니, java 1.7 에서는 java.util.Base64 encode/decode 가 안된단다... 헐.
velog.io
'JAVA' 카테고리의 다른 글
== 과 equal 의 차이 (0) | 2023.12.08 |
---|---|
JAVA : JSON String을 Map으로 Map을 JSON String으로 바꾸기 (0) | 2023.01.04 |
JAVA : 속이 비어있는 삼각형 만들기 (0) | 2022.08.22 |
JAVA - 클래스의 구성 (0) | 2022.07.15 |
JAVA - 클래스와 객체 (0) | 2022.06.20 |
댓글