일반적으로 JAVA에서 ClientIP를 가져오려면 request.getRemoteAddr();를 사용하게 되는데,


웹로직 환경에서는 IP를 가져올 수 없었다, WebServer, WAS, L4, proxy 종류에 상관없이 client IP 를 잘 가져오기를 바란다면 다음과 같은 순서로 IP 를 얻어내야 한다.

 String ip = request.getHeader("X-Forwarded-For");
 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("Proxy-Client-IP"); 
 } 
 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("WL-Proxy-Client-IP"); 
 } 
 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("HTTP_CLIENT_IP"); 
 } 
 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("HTTP_X_FORWARDED_FOR"); 
 } 
 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getRemoteAddr(); 
 }

이상입니다.


by 아카마메 2018. 3. 9. 16:32

SSL 인증서를 서로 설치하기전 환경에서는 이상없이 호출되던 API가 

java.net.protocolexception unsupported protocol https~ 와같은 에러를 내며 동작하지 않게되었습니다.

알아보니 웹로직만의 SSL 프로토콜이 있다고 합니다.  호출하던 API는 톰캣환경이었으므로 통신에 실패했는데, 

이를 다음과 같이 해결했습니다.

Weblogic 기동 파일에 실행옵션에 -DUseSunHttpHandler=true를 추가함으로써 해결하게되었습니다.


'Was > WebLogic' 카테고리의 다른 글

WebLogic 환경에서 IP를 가져올 수 없을때 해결법  (0) 2018.03.09
by 아카마메 2018. 3. 9. 16:20
| 1 |