ItsOpServerApplicationTests.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package com.its.op;
  2. import com.its.op.entity.its.atrd.TbAtrd;
  3. import com.its.utils.AES256Util;
  4. import com.its.utils.SHA256Util;
  5. import lombok.extern.slf4j.Slf4j;
  6. import net.jodah.expiringmap.ExpiringMap;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.apache.ibatis.session.SqlSessionFactory;
  9. import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
  10. import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
  11. import org.jasypt.salt.StringFixedSaltGenerator;
  12. import org.junit.jupiter.api.Test;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.test.context.ActiveProfiles;
  15. import javax.persistence.EntityManager;
  16. import java.sql.Connection;
  17. import java.sql.DriverManager;
  18. import java.time.Instant;
  19. import java.time.LocalDateTime;
  20. import java.time.format.DateTimeFormatter;
  21. import java.util.Arrays;
  22. import java.util.Date;
  23. import java.util.List;
  24. import java.util.Optional;
  25. import java.util.concurrent.TimeUnit;
  26. @Slf4j
  27. //@SpringBootTest
  28. @ActiveProfiles(profiles = "dev")
  29. public class ItsOpServerApplicationTests {
  30. // @Autowired
  31. // DefaultListableBeanFactory bf;
  32. @Autowired
  33. private EntityManager em;
  34. @Autowired
  35. private SqlSessionFactory sqlSessionFactory;
  36. @Test
  37. void splitTest() {
  38. //String param = "ebda31485233419abb3d6275abcac7dc|3fa90f604a0c4dd396bda9e4da1979fa|";
  39. String param = "ebda31485233419abb3d6275abcac7dc|";
  40. String[] data = StringUtils.split(param, "\\|"); // param 이 null 일 경우 사용할 수 없음. 사용전에 null 인지 확인필요
  41. String[] data2 = param.split("\\|");
  42. log.error("DATA: {}, {}, {}", data.length, Arrays.stream(data).count(), Arrays.stream(data).toArray());
  43. log.error("DATA: {}, {}, {}", data2.length, Arrays.stream(data2).count(), Arrays.stream(data2).toArray());
  44. }
  45. @Test
  46. void tt1() {
  47. String sss = "data";
  48. //Optional<String> ss = Optional.empty();
  49. Optional<String> ss = Optional.of(sss);
  50. log.error("{}", ss.ofNullable(ss.get()));
  51. }
  52. @Test
  53. void res() {
  54. //Result result = new Result(1, null);
  55. log.error("{}", sqlSessionFactory.getConfiguration().getDefaultFetchSize());
  56. }
  57. @Test
  58. void qry() {
  59. List<TbAtrd> result = em.createQuery("select m from TbAtrd m", TbAtrd.class)
  60. .getResultList();
  61. log.error("{} EA.", result.size());
  62. result.forEach(obj -> {
  63. log.error("{}", obj.getAtrdId());
  64. });
  65. log.error("======================================================================================");
  66. List<TbAtrd> result_ = em.createQuery("select m from TbAtrd m where m.atrdId = :paramId", TbAtrd.class)
  67. .setParameter("paramId", "ATRD010")
  68. .getResultList();
  69. log.error("{} EA.", result_.size());
  70. result_.forEach(obj -> {
  71. log.error("{}", obj.getAtrdId());
  72. });
  73. }
  74. @Test
  75. void ttl() {
  76. ExpiringMap<String, String> tokenEventMap;
  77. tokenEventMap = ExpiringMap.builder()
  78. .variableExpiration()
  79. .maxSize(1000)
  80. .build();
  81. Date date = new Date();
  82. long secondAtExpiry = date.toInstant().getEpochSecond();
  83. long secondAtLogout = Instant.now().getEpochSecond();
  84. long ttl = Math.max(0, secondAtExpiry - secondAtLogout);
  85. log.error("{}, {}, {}", secondAtExpiry, secondAtLogout, ttl);
  86. tokenEventMap.put("TEST", "data", ttl, TimeUnit.SECONDS);
  87. log.error("{}", tokenEventMap);
  88. }
  89. @Test
  90. void encrypt() {
  91. // for(String n : bf.getBeanDefinitionNames()){
  92. // log.error("{}", n);
  93. // }
  94. log.error("{}", SHA256Util.encrypt("1")); // 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
  95. log.error("{}", SHA256Util.encrypt2("admin12#$!")); // 3de9f98e4b5b4e52ff7d78cfa3140cf23e2b33c5a3143d1b2d1048237c31593c
  96. }
  97. @Test
  98. public void testConnection() {
  99. try (
  100. Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@115.91.94.42:1522:HANTE19C", "ptatms","ptatms");
  101. ) {
  102. log.info("XXXX: {}", conn);
  103. } catch (Exception e) {
  104. log.error("{}", e.getMessage());
  105. }
  106. }
  107. void reference1() {
  108. String name = "test";
  109. LocalDateTime ldt = LocalDateTime.now();
  110. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-dd-MM HH:mm:ss.SSS");
  111. System.out.println(ldt.format(formatter) + " Started thread " + name);
  112. try {
  113. Thread.sleep(2000);
  114. } catch (InterruptedException e) {
  115. log.error("InterruptedException");
  116. }
  117. ldt = LocalDateTime.now();
  118. System.out.println(ldt.format(formatter) + " Ended thread " + name);
  119. }
  120. @Test
  121. void test1() {
  122. for (int ii = 0; ii < 24; ii++) {
  123. for (int jj = 0; jj < 12; jj++) {
  124. log.error("{}:{}", ii, jj*5);
  125. }
  126. }
  127. String prcsDt = "20220120173526";
  128. log.error("{}", prcsDt.substring(0, 2));
  129. log.error("{}", prcsDt.substring(8, 10));
  130. log.error("{}", prcsDt.substring(10, 12));
  131. String svcDt = "20210120173526";
  132. log.error("compareTo: {}", svcDt.compareTo(prcsDt));
  133. }
  134. @Test
  135. void jasypt() {
  136. String encKey = "asdkjfaslkjflkajslfjkajlkf";
  137. PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
  138. SimpleStringPBEConfig config = new SimpleStringPBEConfig();
  139. // ==> SimpleStringPBEConfig 사용시 아래 3개 반드시 설정해야함
  140. config.setPassword(encKey); // 암호화에 사용할 키
  141. config.setPoolSize(1); // Pool Size
  142. config.setSaltGenerator(new StringFixedSaltGenerator("fixedSalt")); // 고정으로 암호화(Default: Random)
  143. //config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
  144. //config.setAlgorithm("PBEWithMD5AndTripleDES");
  145. config.setAlgorithm("PBEWithMD5AndDES"); // Jasypt 를 이용한 암호화 알고리즘
  146. config.setProviderName("SunJCE");
  147. config.setKeyObtentionIterations("10000");
  148. config.setStringOutputType("base64");
  149. /*private Boolean proxyPropertySources = false;
  150. private String bean = "jasyptStringEncryptor";
  151. private String password;
  152. private String algorithm = "PBEWithMD5AndDES";
  153. private String keyObtentionIterations = "1000";
  154. private String poolSize = "1";
  155. private String providerName = null;
  156. //config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
  157. private String saltGeneratorClassname = "org.jasypt.salt.RandomSaltGenerator";
  158. private String stringOutputType = "base64";*/
  159. encryptor.setConfig(config);
  160. String yiits = encryptor.encrypt("yiits");
  161. String rutis = encryptor.encrypt("rutis");
  162. log.info("{}", yiits);
  163. log.info("{}", rutis);
  164. }
  165. @Test
  166. void sha256() {
  167. String data = AES256Util.encryptSHA256("yonginits");
  168. log.info("{}", data);
  169. log.info("{}", data.toUpperCase());
  170. log.info("{}", AES256Util.encryptSHA256("yiits"));
  171. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  172. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  173. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  174. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  175. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  176. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  177. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  178. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  179. }
  180. @Test
  181. void test9() {
  182. int ltc1 = 2933;
  183. int TOTAL = 4361;
  184. double tLtc1 = Double.parseDouble(String.format("%.1f", ltc1 / TOTAL * 100.0));
  185. log.error("{}, {}, {}, {}", ltc1, TOTAL, tLtc1, (ltc1 / (float)TOTAL * 100.0));
  186. }
  187. }