ItsOpServerApplicationTests.java 6.8 KB

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