diff --git a/openapi.yaml b/openapi.yaml
index 16b4105..650c11f 100644
--- a/openapi.yaml
+++ b/openapi.yaml
@@ -5,7 +5,7 @@ info:
license:
name: MIT
url: https://github.com/tiki/l0-index/blob/main/LICENSE
- version: 1.0.2
+ version: 1.0.3
servers:
- url: https://index.l0.mytiki.com
paths:
diff --git a/pom.xml b/pom.xml
index 1c45004..7b27d29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
com.mytiki
l0_index
- 1.0.2
+ 1.0.3
jar
L0 Index
diff --git a/src/main/java/com/mytiki/l0_index/features/latest/license/LicenseService.java b/src/main/java/com/mytiki/l0_index/features/latest/license/LicenseService.java
index d3bf921..bec1a50 100644
--- a/src/main/java/com/mytiki/l0_index/features/latest/license/LicenseService.java
+++ b/src/main/java/com/mytiki/l0_index/features/latest/license/LicenseService.java
@@ -15,15 +15,16 @@
import com.mytiki.l0_index.features.latest.title.TitleDO;
import com.mytiki.l0_index.features.latest.title.TitleService;
import com.mytiki.l0_index.features.latest.use.UseService;
-import com.mytiki.l0_index.utilities.AOSignature;
-import com.mytiki.l0_index.utilities.AOUse;
-import com.mytiki.l0_index.utilities.B64;
-import com.mytiki.l0_index.utilities.Decode;
+import com.mytiki.l0_index.utilities.*;
import com.mytiki.spring_rest_api.ApiExceptionBuilder;
import jakarta.transaction.Transactional;
+import org.bouncycastle.util.encoders.Base64;
import org.springframework.http.HttpStatus;
+import org.springframework.security.crypto.codec.Utf8;
+import java.nio.charset.StandardCharsets;
import java.time.ZonedDateTime;
+import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -76,6 +77,7 @@ public LicenseDO insert(IndexAOReqLicense req, String appId, BlockDO block){
public LicenseAORspList list(LicenseAOReq req, String appId, Long pageToken, Integer maxResults){
LicenseAORspList rsp = new LicenseAORspList();
+ req.setPtrs(hashPtrs(req.getPtrs()));
List licenses = repository.search(req, appId, pageToken, maxResults);
if(pageToken == null && licenses.size() < maxResults)
@@ -160,4 +162,15 @@ public LicenseAORsp fetch(String transaction, String appId){
}
return rsp;
}
+
+
+ private List hashPtrs(List ptrs){
+ if(ptrs == null) return null;
+ List rsp = new ArrayList<>(ptrs.size());
+ ptrs.forEach((ptr) -> {
+ byte[] hashBytes = Sha256.hash(ptr.getBytes(StandardCharsets.UTF_8));
+ rsp.add(Base64.toBase64String(hashBytes));
+ });
+ return rsp;
+ }
}
diff --git a/src/test/java/LicenseTest.java b/src/test/java/LicenseTest.java
index f31ab90..58b090b 100644
--- a/src/test/java/LicenseTest.java
+++ b/src/test/java/LicenseTest.java
@@ -16,7 +16,9 @@
import com.mytiki.l0_index.features.latest.use.UseService;
import com.mytiki.l0_index.main.App;
import com.mytiki.l0_index.utilities.AOUse;
+import com.mytiki.l0_index.utilities.Sha256;
import jakarta.transaction.Transactional;
+import org.bouncycastle.util.encoders.Base64;
import org.junit.jupiter.api.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -27,6 +29,7 @@
import java.net.URI;
import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -252,8 +255,12 @@ public void Test_List_Tag_Success(){
public void Test_List_Ptr_Success(){
String appId = UUID.randomUUID().toString();
BlockDO block = blockService.insert(UUID.randomUUID().toString(), "https://mytiki.com");
+
+ String ptr = UUID.randomUUID().toString();
+ String hashedPtr = Base64.toBase64String(Sha256.hash(ptr.getBytes(StandardCharsets.UTF_8)));
+
IndexAOReqTitle titleReq = new IndexAOReqTitle(UUID.randomUUID().toString(), UUID.randomUUID().toString(),
- UUID.randomUUID().toString(), List.of(UUID.randomUUID().toString()));
+ hashedPtr, List.of(UUID.randomUUID().toString()));
TitleDO title = titleService.insert(titleReq, appId, block);
IndexAOReqLicense licenseReq = new IndexAOReqLicense(
UUID.randomUUID().toString(), UUID.randomUUID().toString(), title.getTransaction(),
@@ -261,7 +268,7 @@ public void Test_List_Ptr_Success(){
service.insert(licenseReq, appId, block);
LicenseAOReq req = new LicenseAOReq();
- req.setPtrs(List.of(titleReq.getPtr()));
+ req.setPtrs(List.of(ptr));
LicenseAORspList list = service.list(req, appId, null, 100);
assertEquals(list.getResults().size(), 1);
assertEquals(list.getResults().get(0).getId(), licenseReq.getTransaction());