yoni
TLS 버전 강제 적용 본문
Ø 현상 : Local 개발 환경에서는 Jira Cloud 서버와 Connection이 정상 수행되어 , 관련 Jira 프로젝트 / 버전 정보를 확인 가능하나
개발 환경에서는 Jira Cloud 서버와 Connection 연계가 되지 않음.
(참고로 SSL 인증 환경이 Setting된 운영 환경에 적용해도 동일한 문제점이 발생함).
Ø 원인 : 개발자 개발 환경(Oracle Java)과 Jesu 환경 서버 환경(IBM Java)의 Java 환경 차이로 발생한 건으로,
TLS(Transport Layer Security) 1.2 사용 여부 설정과 관련된 사항으로 확인됨
Ø 해결 내용
1. Jira Cloud 서버 연계 이전에 IBM Java Option 사항에 TLS 1.2 사용 여부 환경 설정 값을 강제로 true 로 지정함.
2. Jira Project 검색 Popup에서 호출하는 PopupSearchController.java 의 PopupSearchController 메서드 내
Jira URL 호출하기 전에 강제로 ‘com.ibm.jsse2.overrideDefaultTLS’ 매개변수에 ‘true’로 강제로 지정한 후 호출하도록 수정함.
System.setProperty("com.ibm.jsse2.overrideDefaultTLS", "true");
<적용 소스>
@RequestMapping(value = {"/getJiraDataList"}, method = {RequestMethod.POST})
public String getJiraDataList(Model model) throws UnirestException, ParseException, JSONException {
String emplNo = SessionContextUtil.getLoginUser(LoginUser.class).getTbComPerson().getEmplNo();
// Jira 연계를 위한 Session의 사번정보로 공통 User Table의 Jira정보(Jira Token , Jira Email)를 조회한다.
TbComPerson tbComPerson = jiraService.getTbComPerson(emplNo);
//System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2,SSLv3") ;
System.setProperty("com.ibm.jsse2.overrideDefaultTLS", "true");
System.out.println("System.getProperties()==========================================================") ;
System.out.println(System.getProperties()) ;
// Jira 계정에 연관된 Pjt 목록을 조회 하여 Json 형식으로 리턴 받는다.
HttpResponse<JsonNode> jiraPjtList = Unirest.get("https://ㅇㅇㅇ.atlassian.net/rest/api/2/project/search")
.basicAuth(tbComPerson.getJiraEmail(), tbComPerson.getJiraToken())
.header("Accept", "application/json")
.asJson();
JSONObject objPjtJson = new JSONObject(jiraPjtList.getBody().toString());
Ø 개발 서버 확인 결과
1. 위의 소스를 적용하여 개발 서버에서 확인 결과 Jira Project / Version 정보 정상 조회 됨을 확인 완료함.
2. 확인한 내용은 아래 이미지를 참고하시기 바랍니다.
Ø 추후 검토 사항
1. 소스 내 매개 변수 적용 사항을 JVM Option에 정의하는 부분에 대해서는 서버 담당자와 확인
'방화벽' 카테고리의 다른 글
[방화벽] 패킷 확인 (0) | 2020.12.07 |
---|