diff --git a/server/src/main/java/com/epam/aidial/core/server/service/PublicationUtil.java b/server/src/main/java/com/epam/aidial/core/server/service/PublicationUtil.java index 76eb2dac..4c3e5b78 100644 --- a/server/src/main/java/com/epam/aidial/core/server/service/PublicationUtil.java +++ b/server/src/main/java/com/epam/aidial/core/server/service/PublicationUtil.java @@ -1,5 +1,6 @@ package com.epam.aidial.core.server.service; +import com.epam.aidial.core.server.data.ResourceTypes; import com.epam.aidial.core.server.security.EncryptionService; import com.epam.aidial.core.server.util.ProxyUtil; import com.epam.aidial.core.server.util.ResourceDescriptorFactory; @@ -112,6 +113,9 @@ static String buildTargetFolderForCustomAppFiles(String targetUrl, EncryptionSer if (descriptor.isFolder()) { throw new IllegalArgumentException("target url must be a file"); } + if (descriptor.getType() != ResourceTypes.APPLICATION) { + throw new IllegalArgumentException("target url must be an application type"); + } String appName = descriptor.getName(); List folders = descriptor.getParentFolders(); if (folders.isEmpty()) { diff --git a/server/src/test/java/com/epam/aidial/core/server/service/PublicationUtilTest.java b/server/src/test/java/com/epam/aidial/core/server/service/PublicationUtilTest.java index 3640c7e8..5e5e8f24 100644 --- a/server/src/test/java/com/epam/aidial/core/server/service/PublicationUtilTest.java +++ b/server/src/test/java/com/epam/aidial/core/server/service/PublicationUtilTest.java @@ -31,6 +31,7 @@ public void testBuildTargetFolderForCustomAppFiles() { assertEquals("folder/.appA/", PublicationUtil.buildTargetFolderForCustomAppFiles("applications/asdfoiefjio/folder/appA", encryptionService)); assertEquals(".appA/", PublicationUtil.buildTargetFolderForCustomAppFiles("applications/asdfoiefjio/appA", encryptionService)); assertThrows(IllegalArgumentException.class, () -> PublicationUtil.buildTargetFolderForCustomAppFiles("applications/asdfoiefjio/appA/", encryptionService)); + assertThrows(IllegalArgumentException.class, () -> PublicationUtil.buildTargetFolderForCustomAppFiles("prompts/asdfoiefjio/appA", encryptionService)); } @Test