Hwang Uihyun vor 3 Jahren
Ursprung
Commit
44b220265c

+ 9 - 0
src/main/java/com/icontrols/kakao/common/utils/CommonUtil.java

@@ -107,6 +107,15 @@ public class CommonUtil {
 		
 		return EndTime;
 	}
+	
+	public static String getStrTypeTimeWithLongType(long seconds) {
+		Date today = new Date();
+		Calendar cal = Calendar.getInstance();
+		cal.setTimeInMillis(seconds);
+		
+		SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
+		return sdFormat.format(cal.getTime());
+	}
 	// String 타입의 두 날짜를 비교하기
 	// -1 면 startTime 이 크다.
 	// 0 이면 두 시간은 같다

+ 44 - 0
src/main/java/com/icontrols/kakao/common/utils/JWTUtils2.java

@@ -5,6 +5,8 @@ import java.security.GeneralSecurityException;
 import java.security.NoSuchAlgorithmException;
 import java.util.Base64;
 import java.util.Base64.Decoder;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.json.JSONObject;
 import org.slf4j.Logger;
@@ -28,7 +30,49 @@ public class JWTUtils2 {
 //	public static String ACCESS_TOEKN_SECRET_KEY = "dlswmdaWNvbnRyb2xzMTc5MyFAIw==";
 //	// icontrolsrefresh1793!@#
 //	public static String REFRESH_TOKEN_SECRET_KEY = "aWNvbnRyb2xzcmVmcmVzaDE3OTMhQCM=";
+//	public static void main(String[] args) {
+//		String token = "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjQzMjAwLCJjbXBJcCI6Ik1qSXhMakUyTXk0eU5ETXVNdz09IiwiaG9tZUlkIjoiTXZwVDN2dGgvMU5QOW5MK3phdnplQT09IiwiaWF0IjoxNjE3NjM1NDAxLCJjbGllbnRJbmZvIjoiTVBBSFhLV0VMUyJ9.hfJ1pKE1eLQBvosjCavrpGhp1f7jQNfs_OY6uCN-";
+//		Map<String, Object> _map = JWTUtils2.getTokenInfo(token);
+//		
+//		System.out.println("-->" + _map);
+//	}
+	public static Map<String, Object> getTokenInfo(String token){
+		String secretKey = "";
+		Map<String, Object> rMap = new HashMap<String, Object>();
+		
+		try {
+			secretKey = ACCESS_TOEKN_SECRET_KEY;
+			
+//			logger.info(token);
+			Decoder decoder = Base64.getDecoder();
+			// 시그니처가 맞는지 확인
+			String enPayload = token.split("\\.")[1];
+			String dePayload = new String(decoder.decode(enPayload));
+			
+			JSONObject obj = new JSONObject(dePayload);
 
+			String jwt = Jwts.builder().claim("exp", obj.get("exp")) // 1시간 -> 설정정보로 변경해야함
+					.claim("cmpIp", obj.get("cmpIp")).claim("homeId", obj.get("homeId")).claim("iat", obj.get("iat"))
+					.claim("clientInfo", obj.get("clientInfo"))
+					.signWith(SignatureAlgorithm.HS256, secretKey.getBytes("UTF-8")).compact();
+			
+			String encodedHomeId = obj.get("homeId").toString();
+			AES256Util aes = new AES256Util();
+			String homeId = aes.decrypt(encodedHomeId);
+			int longTime = (int)obj.get("iat");
+			System.out.println("longtime =" + longTime);
+			rMap.put("cmpIp", obj.get("cmpIp"));
+			rMap.put("homeId", homeId);
+			rMap.put("iat", CommonUtil.getStrTypeTimeWithLongType(longTime));
+			rMap.put("clientInfo", obj.get("clientInfo"));
+			
+		}catch(Exception e) {
+			rMap.put("ERROR", e.getMessage());
+			e.printStackTrace();
+		}
+		
+		return rMap;
+	}
 	/**
 	 * 
 	 * @param token

+ 7 - 0
src/main/java/com/icontrols/kakao/controller/MainController.java

@@ -25,6 +25,7 @@ import com.icontrols.kakao.common.KAKAO_RESULT;
 import com.icontrols.kakao.common.KEY_INFO;
 import com.icontrols.kakao.common.SERVERINFO;
 import com.icontrols.kakao.common.utils.CommonUtil;
+import com.icontrols.kakao.common.utils.JWTUtils2;
 import com.icontrols.kakao.service.AuthService;
 import com.icontrols.kakao.service.KakaoExtensionService;
 import com.icontrols.kakao.socket.wallpad.KakaoMsgHandler;
@@ -242,6 +243,12 @@ public class MainController {
 			"3122/2004"	
 	};
 	
+	@RequestMapping(value = "/test/getInfoAccessToken", method = RequestMethod.GET, consumes = "application/json")
+	public @ResponseBody Map<String, Object> getInfoAccessToken(@RequestBody Map<String, Object> params){
+		logger.info("!!!!!!!!!!");
+		Map<String, Object> res = JWTUtils2.getTokenInfo((String) params.get("accessToken"));
+		return res;
+	}
 	@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = "application/json")
 	public @ResponseBody Map<String, Object> recieveTest(@RequestHeader HttpHeaders header,
 														@RequestBody Map<String, Object> params,

+ 1 - 1
src/main/java/com/icontrols/kakao/service/impl/AccessTokenServiceImpl.java

@@ -61,7 +61,7 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 		int token_vali = JWTUtils2.validateToken(accessToken);
 		
 		if(token_vali == KAKAO_RESULT.FAIL_EXPIREDTOKEN) {
-			logger.error("[ERROR] - 인 증 토 큰 만 료 - " + accessToken);
+			logger.info("[ERROR] - 인 증 토 큰 만 료 - " + accessToken);
 			return KAKAO_RESULT.FAIL_EXPIREDTOKEN;
 		}else if(token_vali == KAKAO_RESULT.FAIL_INVALID_TOKEN) {
 			logger.error("[ERROR] - 유 효 하 지 않 는 토 큰 - " + accessToken);

+ 4 - 4
src/main/java/com/icontrols/kakao/socket/wallpad/KakaoEventHandler.java

@@ -85,7 +85,7 @@ public class KakaoEventHandler {
 			Map<String, Object> sendResult = sendStatusResult(userInfo, params);
 			
 			int code = (int) sendResult.get("result");
-			logger.debug("[EVENT RESULT] - ["+code+"]");
+			logger.info("[KAKAO EVENT SEND RESULT] - ["+code+"]");
 			UserInfoRepository repo = null;
 			switch(code) {
 			case KAKAO_RESULT.FAIL_INTERNAL:
@@ -209,9 +209,9 @@ public class KakaoEventHandler {
 			
 			String url = SERVERINFO.SendKakaoEventURL + "/events";
 
-			logger.debug("SendStatusResult URL : " + url);
-			logger.debug("SendStatusResult header :  " + headers.toString());
-			logger.debug("SendStatusResult return value : " + params.toString());
+			logger.info("SendStatusResult URL : " + url);
+			logger.info("SendStatusResult header :  " + headers.toString());
+			logger.info("SendStatusResult return value : " + params.toString());
 			logger.info("sendStatusResult entity : " + entity.toString());
 			String answer = restTemplate.postForObject(url, entity, String.class);
 			

+ 1 - 1
src/main/java/com/icontrols/kakao/socket/wallpad/KakaoMsgHandler.java

@@ -243,7 +243,7 @@ public class KakaoMsgHandler {
 			
 			if(!xmlResult.equalsIgnoreCase("ok")) {
 				retMap.put(KEY_INFO.HTTP_KEY_ERROR, KAKAO_RESULT.getErrorInfo(KAKAO_RESULT.FAIL_UNREACHABLE));
-				logger.error("[KakaoMsgHandler - getDeviceList] xmlResult not ok \r\n" + xmlResult);
+				logger.error("[KakaoMsgHandler - getDeviceList] - [" + dong + "]-[" + ho + "] xmlResult not ok \r\n" + xmlResult);
 				
 				return retMap;
 			}

+ 2 - 2
src/main/resources/application.properties

@@ -7,11 +7,11 @@ logging.config=classpath:logback-spring.xml
 
 ## 배포용-테스트 단지서버
 #spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_danzi?useUnicode=true&charaterEncoding=utf-8
-#spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
+spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
 
 ## 배포용-카카오데모서버
 ##spring.datasource.url=jdbc:mariadb://localhost:8005/platform_danzi?useUnicode=true&charaterEncoding=utf-8 
-spring.datasource.url=jdbc:mariadb://localhost:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
+#spring.datasource.url=jdbc:mariadb://localhost:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
 spring.datasource.username=valley
 spring.datasource.password=valley123